BazelなしでC ++でTensorflowモデルを実行し、Tensorflowの設置なしで、Tensorflowをコンパイルしません。テンソル操作を実行し、熱心な実行を使用し、C ++から保存されたモデルを直接実行します。
// Read the graph
cppflow::model model ( " saved_model_folder " );
// Load an image
auto input = cppflow::decode_jpeg(cppflow::read_file(std::string( " image.jpg " )));
// Cast it to float, normalize to range [0, 1], and add batch_dimension
input = cppflow::cast(input, TF_UINT8, TF_FLOAT);
input = input / 255 .f;
input = cppflow::expand_dims(input, 0 );
// Run
auto output = model(input);
// Show the predicted class
std::cout << cppflow::arg_max(output, 1 ) << std::endl;例を見て、深いネットワークをロードし、サンプル画像でフィードする方法に関する完全な例を確認できます。
CPPFLOWはTensorFlow C APIを使用してモデルを実行します。つまり、Tensorflowをインストールせずに使用でき、Tensorflowリポジトリ全体をBazelでコンパイルせずに使用できます。CAPIをダウンロードするだけです。このプロジェクトを使用すると、void、malloc、またはfreeについて心配することなく、C ++でモデルを管理および実行できます。 cppflowを使用すると、簡単にできます。
Tensorflow 2 C APIを使用しているため、ダウンロードするだけで、ドキュメントをチェックして、方法に関するガイドを確認してください。
その後、ライブラリをインストールできます。
git clone [email protected]:serizba/cppflow.git
cd cppflow/examples/load_model
mkdir build
cd build
cmake ..
make -j
make installこれで、QuickStartガイドをチェックして、CPPFLOWを使用してプログラムを実行できます。
https://serizba.github.io/cppflow/でドキュメントを確認してください。
そこでは、QuickStartガイドと、ライブラリのインストール方法と例を実行する方法に関する詳細情報を見つけることができます。
CPPFLOWは、基本的にTensorflow C APIのラッパーです。基本クラスのテンソルは、TF熱心なテンソルのラッパーであり、TF表現へのポインターを構成するだけです。
TF C APIは、すべてのTF RAW OPSを呼び出すツールを提供しますが、それらを使用することは混乱します。 CPPFLOWには、これらの機能の上にファサードが含まれているため、通常のC ++関数として簡単に呼び出すことができます。これを達成するために、ファイルOPSには(ほとんど)すべてのTF RAW OPS機能が含まれますが、単純なC ++インターフェイスが含まれています。このファイルは、小さなスクリプトを使用して自動的に生成されました。
CPPFLOWには、TF保存モデルのラッパー、モデルクラスも含まれているため、簡単に開いて実行できます。
このプロジェクトに貢献することをいとわない場合は、CPPFLOWの開発ロードマップをご覧ください。特別にcontributor_wanted LakedのPRまたは問題は、新しい貢献者を大いに歓迎します。
このコードを使用するか、この作業を調査に役立つ場合は、私たちを引用してください。
@software{
izquierdo2019cppflow,
author = {Izquierdo, Sergio},
doi = {10.5281/zenodo.7107618},
title = {{cppflow: Run TensorFlow models in C++ without installation and without Bazel}},
url = {https://github.com/serizba/cppflow},
version = {2.0.0},
month = {5},
year = {2019}
}
静的コードリンカーCPPLINTを使用して、GoogleのC ++スタイルガイドを使用します。添付のPylinTRC構成を使用して、静的コードリンカーPylintを使用してGoogleのPythonスタイルガイドを使用します。
CPPFlowはTensorflowとは関係ありません。 CPPFLOWアイコンは、TensorFlowロゴの変更されたバージョンです。 Tensorflow、Tensorflowロゴ、および関連するマークは、Google Inc.の商標です。