2016-11-10 22 views
1

我一直在使用Tensorflow C++ api開發C++項目。它只是從Python創建張量流圖。我現在用Tensorflow代碼使用bazel來構建它。但我認爲這是效率低下的方式。有沒有辦法爲C++ api打包Tensorflow?

我只想Tensorflow庫和頭文件,並且僅僅只使用cmake編譯我的項目。

我知道如何建立共享庫。

bazel build -c opt --config=cuda //tensorflow:libtensorflow.so但這個命令只是讓一個libtensorflow.so文件。我無法找到構建我的項目的頭文件。

是否有辦法爲C++打包tensorflow庫?如mvn package命令。

+1

[如何構建和使用Google TensorFlow C++ api](http://stackoverflow.com/questions/33620794/how-to-build-and-use-google-tensorflow--api) – m8mble

+0

@問題確實很接近。在我看來,在這裏更具體的CMake。我們是否應該要求額外的標籤或標題中的內容? –

+1

@EricPlaton是的,這將是至少有幫助。無論如何,這個問題與舊的問題沒有區別...... – m8mble

回答

-1

當對共享庫的建設,我用的標題是$PROJECT_HOME/bazel-genfiles

添加$PROJECT_HOME/bazel-genfiles到連接頭列表應該夠了。

+0

這還不夠。 – Seanny123

1

據我所知,沒有官方可分發的C++ API包。然而,tensorflow_cc項目爲您構建和安裝TF C++ API,以及您可以鏈接的方便的CMake目標。根據你的描述,這可能正是你需要的。

0

你有兩個選擇:靜態鏈接和動態鏈接。 如果您想將您的C++項目動態鏈接到TensorFlow,您只需要一個--whole-archive鏈接器標誌。必要的頭文件由pip安裝提供。

生成庫基本上是

bazel build -c opt --copt=-mfpmath=both --config=cuda //tensorflow:libtensorflow.so 
bazel build -c opt --copt=-mfpmath=both --config=cuda //tensorflow:libtensorflow_cc.so 

有一步到位很容易在C, C++, Go (GitHub project)運行TensorFlow圖。在C,C++,Go中查看這些工作示例的鏈接項目。

相關問題