2017-03-20 24 views
2

TensorflowのC++ APIを使用するために必要なすべてのヘッダーファイルが必要です。 C APIの場合と同様に、すべての関数などが宣言された単一のヘッダc_api.hが存在し、C++ APIのためのそのような単一ヘッダがありますか?私はこれを検索しようとしましたが、何が必要なのか理解できませんでした。libtensorflow_cc.soを使用してTensorflow C++ APIを使用するヘッダーのリスト

libtensorflow_cc.soを構築するために使用されるtensorflow/cc、tensorflow/coreおよびtensorflow/cには、膨大なヘッダリストがあり、テンソルフローのこれらのほとんどを出荷しています。 bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_packageを使用して構築されています)。 C++ APIを使用するには、そのヘッダーのリストで十分ですか?テンソルフロー/ビルドで追加のターゲットを作成する必要がありますか?

私はhttps://www.tensorflow.org/api_docs/cc/も行っていますが、実際に必要なヘッダーの正確なリストを作成することはできません。

関連記事の1つでは、テンソルフロー/ bazel-genfilesに必要なヘッダーが含まれていることがわかりました。これを確認してください。事前に

おかげで、 Nishidha

+0

必要なものを選択するか、すべてのヘッダーを含めることができますか? –

+0

問題は、C++ APIを使用するためにどのヘッダが必要であるかを調べる方法です。私のアプローチは、私はAPIのドキュメントを通過し、どのヘッダーが特定のAPI /クラス/タイプを定義しているかを調べ、そのヘッダーが含まれているかどうかを調べます。これを実行すると、math_ops.h、array_ops.hなどのヘッダファイルのいくつかがターゲットの一部として生成され、bazel-genfilesディレクトリに格納されることがわかりました。ビルドファイルやその他の手段を変更することで、どのようにbazel-genfilesディレクトリの内容をディストリビューションに含めることができますか? –

+0

私は、jemallocヘッダーのようないくつかの外部依存関係の内容さえ知っていました。 bazel-genfilesで生成されたjemalloc * .hが配布されます。これらはcc_libraryとgenruleの組み合わせによっても作成されます。 array_ops.h、maths_op.hなどのヘッダーを使用するcc_opsライブラリでも同様のことが行われますが、残念ながらこれらのヘッダーはテンソルフローのpipパッケージには入っていません。この特定のケースが機能するように誰も助けてくれませんか?前もって感謝します。 –

答えて

0

は、私の知る限りでは、公式の配布C++ APIパッケージはありません。ただし、TF C++ APIをビルドしてインストールするプロジェクトはtensorflow_ccで、便利なCMakeターゲットをリンクすることもできます。

# install *all* files with .h extension 
/tensorflow/**/*.h 
# install all dependencies downloaded by contrib/makefile 
/tensorflow/tensorflow/contrib/makefile/downloads/ 
# install all files from third_party folder (e.g., Eigen/Tensor) 
/tensorflow/third_party/ 

そして、あなたはCMakeLists.txt:58であなたのコンパイラが含まれるべきディレクトリのリストを見つけることができます:それはおそらく必要以上にわずかに多くのファイルをインストールしますが

、あなたはCMakeLists.txt:130にインストールヘッダーのリストを見つけることができます。

/tensorflow 
/tensorflow/bazel-genfiles 
/tensorflow/tensorflow/contrib/makefile/downloads 
/tensorflow/tensorflow/contrib/makefile/downloads/eigen 
/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp 
/tensorflow/tensorflow/contrib/makefile/gen/protobuf-host/include 

あるC++ APIはまた、固有かついるProtobufヘッダとライブラリが必要であることを注意は、tensorflow_ccの場合、TFレポからcontrib/makefileを使用して構築されました。

tensorflow_ccを直接使用することをお勧めします。これをすべて手作業で行う必要はありません。

関連する問題