2016-11-10 13 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++のテンソルフローライブラリをパッケージ化する方法はありますか? mvn packageコマンドなどです。

+1

[Google TensorFlow C++ apiのビルドと使用方法](http://stackoverflow.com/questions/33620794/how-to-build-and-use-google-tensorflow-c-api) – m8mble

+0

@質問は本当に近いです。ここで私はCMakeより具体的に思えます。私たちはタイトルの中に余分なタグや何かを求めなければなりませんか? –

+1

@EricPlatonはい、これはちょっと助けになります。いずれにせよ、質問は古いものと区別がつかない... – m8mble

答えて

-1

共有ライブラリに対してビルドする場合、私が使用するヘッダは$PROJECT_HOME/bazel-genfilesです。

$PROJECT_HOME/bazel-genfilesをリンカーヘッダーリストに追加するだけで十分です。

+0

これでは不十分です。 – Seanny123

1

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

0

静的リンクと動的リンクの2つのオプションがあります。 C++プロジェクトをTensorFlowに動的にリンクさせる場合は、--whole-archiveリンカフラグが必要です。必要なヘッダーファイルは、pipインストールによって提供されます。ライブラリの生成

は、基本的にはC, C++, Go (GitHub project)にTensorFlowグラフを実行しやすい場所にすべてのものを持って

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のこれらの作業例については、リンクされたプロジェクトを参照してください。

関連する問題