c 呼叫Tensorflow模組

2021-08-16 01:35:18 字數 1704 閱讀 9631

最近在搞kinect人體骨架識別的研究,因為姿勢識別要用到深度學習方面的東西,而現在比較流行的深度學習框架是tensorflow,對python支援的相當好,我的專案是用c++寫的,難免這兩種語言做互動,接下來我就c++如何調python做一下總結。

一,建乙個win32控制台專案c++_tensorflow

右鍵專案屬性,vc++目錄——>包含目錄d:\program files\python36\include

庫目錄d:\program files\python36\libs;d:\program files\python36\lib

然後開啟python的安裝目錄,找到libs資料夾,複製乙份python36.lib,並命名為python36_d.lib(這個的原因是inlcude目錄下的pyconfig.h裡面的**在debug下呼叫的是python36_d.lib)

二,準備工作

把python安裝目錄下的python36.dll、自己的python指令碼tensorflowtest.py都放到debug目錄或release目錄下(裡面有xx.exe檔案)

三,**實現

main.cpp

#include 

#include

using

namespace

std;

//呼叫輸出"hello python"函式

void hello()

pfunc = pyobject_getattrstring(pmodule, "hello");//呼叫的函式名

if (!pfunc)

//返回值

pyobject *preturn = null;

preturn = pyeval_callobject(pfunc, null);//呼叫函式

//將返回值轉換為int型別

int result;

pyarg_parse(preturn, "i", &result);//i表示轉換成int型變數

cout

<< "結果 = "

<< result << endl;

//pyeval_callobject(pfunc, null);//呼叫函式,null表示引數為空

py_finalize();//呼叫py_finalize,和py_initialize相對應的.

}//呼叫add函式,傳兩個int型引數

void add()

int main(int argc, char** argv)

tensorflowtest.py

import tensorflow as tf

defhello

(): a = tf.constant(2)

b = tf.constant(2)

c = tf.add(a, b)

with tf.session() as sess:

d=sess.run(c)

return d

defadd

(a, b):

return a+b

注意:如果要呼叫的函式引數是指定的檔案,需把檔案放到工程目錄(和debug目錄同級)下

c 呼叫tensorflow的例子

乙個很簡單的例子,使用c 呼叫tensorflow。首先需要安裝windows 版本的tensowflow,使用64位的python3.5,如果沒有安裝,需要首先安裝python3.5 然後以管理員方式進入命令列,執行 pip install tensorflow starcorefactory s...

C 模組呼叫 C 編寫模組

c 模組呼叫 c 編寫模組 涉及知識點 1 ifdef cplusplus extern c 處理其中的 要明白為何使用extern c 還得從cpp 中對函式的過載處理開始說起。在c 中,為了支援過載機制,在編譯生成的彙編碼中,要對函式的名字進行一些處理,加入比如函式的返 回型別等等.而在c 中,...

C 呼叫tensorflow模型EAST識別文字

主要利用了emgucv這個opencv的c 庫,但是由於emgucv裡的nms只能計算rect不能計算rotaterect所以識別水平文字還行,傾斜的就不行了,如下 寫的不規範什麼的勿噴.如果有什麼問題請告訴我,互相提高嘛 using system using system.collections....