C++tensorflow 튜 토리 얼 호출
4333 단어 c + +tensorflow
프로젝트 가 c++로 작 성 된 것 이 라면 python 의 tensor flow 를 호출 하 시 겠 습 니까?본 튜 토리 얼 참조(tensorflow 모델 은 CNN 볼 륨 신경 망)
구체 적 인 절차:
1.python 환경
먼저 python 을 설치 하면 Anaconda 홈 페이지 에서 직접 다운로드 할 수 있 습 니 다.python 은 반드시 64bit 를 선택해 야 한 다 는 것 을 기억 하 세 요.현재 tensor flow 는 32 비트 의 python 을 지원 하지 않 습 니 다.이것 도 제 가 이전에 구 덩이 를 당 한 곳 입 니 다.Anaconda 다운로드 후 바로
bash Anaconda3-4.3.1-Linux-x86_64.sh
설치 할 수 있 습 니 다.그리고...
gedit ~/.bashrc
맨 뒤에.
export PATH=/< anaconda >/bin:$PATH
python 설치 경 로 를 시스템 경로 에 추가 합 니 다.이렇게 하면 터미널 에서 python 을 두 드 린 후에 설 치 된 python 3.6 을 실행 합 니 다.다음 그림 에서 보 듯 이 설치 성공 을 의미 합 니 다.2.tensorflow
직접 터미널 입력:
pip install tensorflow
자동 으로 python 에 설치 해 드릴 게 요.'일치 하 는 버 전 을 찾 지 못 했 습 니 다'(또는 빨간색 영어 힌트)와 같은 버 전이 나타 나 면 python 32bit 버 전 으로 설치 할 수 있 습 니 다.tensor flow 는 당분간 지원 되 지 않 습 니 다!
설치 성공 후 터미널 에서 다음 작업 을 수행 합 니 다:
tensorflow 버 전 을 표시 합 니 다.설치 성공 을 표시 합 니 다!
3.C++Demo
간단 한 c++python+tensor flow 의 demo 를 추출 하여 실제 수요 에 따라 그대로 바 가 지 를 그 릴 수 있 습 니 다.
#include <Python.h>
#include <iostream>
int main(int argc, char** argv)
{
char* picpath ="/home/pdd/PD/c++/c++python/pic/0.0.jpg";
Py_Initialize();
if ( !Py_IsInitialized() ) {
return -1;
}
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
PyObject* pMod = NULL;
PyObject* pFunc = NULL;
PyObject* pParm = NULL;
PyObject* pRetVal = NULL;
int iRetVal = -999;
char* modulName="classify"; // py
pMod = PyImport_ImportModule(modulName);
if(!pMod)
{
return -1;
}
char* funcName="evaluate"; // py
pFunc = PyObject_GetAttrString(pMod, funcName);
if(!pFunc)
{
return -2;
}
pParm = PyTuple_New(1);
PyTuple_SetItem(pParm, 0, Py_BuildValue("s",picpath));// ,
pRetVal = PyEval_CallObject(pFunc, pParm);// py
PyArg_Parse(pRetVal, "i", &iRetVal);//py iRetVal
//PyErr_Print();
std::cout<<iRetVal;
return iRetVal;
}
4.tensorflow 의 python 스 크 립 트기본적으로 tensor flow 의 python 스 크 립 트 를 썼 고 성공 할 수 있 습 니 다.(tensorflow 의 사용 은 본문의 중점 이 아니다)
c++호출 해 야 할 것 은 바로 이 classify.py 의 evaluate 함수 입 니 다.그림 경 로 를 입력 하고 분류 결 과 를 c+프로그램 에 되 돌려 줍 니 다.
from PIL import Image
import numpy as np
import tensorflow as tf
def evaluate(pic):
image = Image.open(pic)
image = image.resize([256, 256])
image_array = np.array(image)
with tf.Graph().as_default():
, , prediction……
max_index = np.argmax(prediction)
return max_index
5.c+python 스 크 립 트 를 호출 하 는 환경이 럴 때 는 간단 한 Makefile 가입 에 필요 한 의존 환경 을 써 야 합 니 다.예 를 들 어 c+코드 첫 줄 의 Python.h 와 관련 된 라 이브 러 리 파일 입 니 다.
간단 한 Makefile 은 다음 과 같 습 니 다:
main:c++python.cpp
g++ -o out c++python.cpp -I/home/pdd/anaconda3/include/python3.6m -lpython3.6m -L /home/pdd/anaconda3/lib
clean:
rm -rf *.o
-I 뒤의/home/pdd/anaconda 3/include/python 3.6m 필요 한 Python.h;-필요 한 libpython 3.6m.so 로 연결 하기;-L 은 링크 의 경 로 를 가리킨다.터미널 입력 make.libpython 3.6m.so 가 필요 하 다 면/home/pdd/anaconda 3/lib 의 libpython 3.6m.so 를/usr/lib/하(sudo cp―C)로 복사 하 십시오.
이 때 다시 make 를 입력,모든 ok!out 파일 을 가 져 와 서./out 을 입력 하 십시오.결 과 는 다음 과 같 습 니 다.
결 과 를 얻다퀘 스 트 완성!
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hdu 1717 소수 화 점수 2 (수학)소수 화 점수 2 레이 는 수학 시간 에 선생님 의 말씀 을 듣 고 모든 소수 가 점수 로 표시 되 는 형식 이 라 고 말 했다. 그 는 녹 기 시 작 했 고 곧 완성 되 었 다. 그러나 그 는 또 하나의 문 제 를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.