tensorflow.so
とc_api.h
のグラフをC++に読み込む方法の例はありません。私はc_api.h
を読みましたが、ReadBinaryProto
関数はそれに含まれていませんでした。 ReadBinaryProto
機能を持たないグラフをロードするにはどうすればよいですか?tensorflow.soとc_api.hを使ってグラフをC++言語で読み込む方法は?
2
A
答えて
6
C++を使用している場合は、代わりにC++ APIを使用できます。 label image exampleは、おそらくあなたが始めるのに役立つ良いサンプルです。
実際にC APIだけを使用する場合は、TF_GraphImportGraphDef
を使用してグラフを読み込みます。
#include <stdio.h>
#include <stdlib.h>
#include <tensorflow/c/c_api.h>
TF_Buffer* read_file(const char* file);
void free_buffer(void* data, size_t length) {
free(data);
}
int main() {
// Graph definition from unzipped https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip
// which is used in the Go, Java and Android examples
TF_Buffer* graph_def = read_file("tensorflow_inception_graph.pb");
TF_Graph* graph = TF_NewGraph();
// Import graph_def into graph
TF_Status* status = TF_NewStatus();
TF_ImportGraphDefOptions* opts = TF_NewImportGraphDefOptions();
TF_GraphImportGraphDef(graph, graph_def, opts, status);
TF_DeleteImportGraphDefOptions(opts);
if (TF_GetCode(status) != TF_OK) {
fprintf(stderr, "ERROR: Unable to import graph %s", TF_Message(status));
return 1;
}
fprintf(stdout, "Successfully imported graph");
TF_DeleteStatus(status);
TF_DeleteBuffer(graph_def);
// Use the graph
TF_DeleteGraph(graph);
return 0;
}
TF_Buffer* read_file(const char* file) {
FILE *f = fopen(file, "rb");
fseek(f, 0, SEEK_END);
long fsize = ftell(f);
fseek(f, 0, SEEK_SET); //same as rewind(f);
void* data = malloc(fsize);
fread(data, fsize, 1, f);
fclose(f);
TF_Buffer* buf = TF_NewBuffer();
buf->data = data;
buf->length = fsize;
buf->data_deallocator = free_buffer;
return buf;
}
+1
ありがとうございます。私はtensorflowプロジェクトの外でC++ APIを使いたいです。 「ラベルイメージの例」は、テンソルフロープロジェクト内に構築されています。テンソルフローの外側でC++ APIを使用するにはどうすればよいですか?ヘッダーファイルはどうしたらいいですか? –
0
前の答えはあなたのメインである:CのAPIは、例えば(このような移動、ジャワ、錆、ハスケルなどなど、他の言語でバインディングを構築することを意図している)を使用することが特に便利ではないことに注意してくださいあなたがTensorFlowプロジェクトの外でそれを使用したい(そしてその結果としてBazelでビルドしたくない)場合は、オプションです。 にはが必要です。TF_GraphImportDefを使ってc_api.hからロードするには、Pythonでテストを行い、終了したらモデル/グラフをC++/C Apiでエクスポートすることをお勧めします。
関連する問題
- 1. C言語で正しくレジストリ値を読み込む方法
- 2. C#/ C++でOCRを使ってcalcを読み込む方法
- 3. PARSE方言を使ってCSVから行を読み込む方法は?
- 4. ajaxとdjangoを使ってファイルを読み込む方法は?
- 5. システムコールのC言語での読み込みと書き込み
- 6. ANSI C - stdinから単語を読み込む方法は?
- 7. C#でiTextSharpを使ってレンダリングされたPDFにTelugu言語を組み込む方法は?
- 8. C言語の配列に.csvファイルを読み込む
- 9. 別の言語のファイルベースにデータを書き込んで読み込む方法
- 10. ボタンを使ってsapui5 listを読み込む方法は?
- 11. sp.texFileを使ってローカルファイルを読み込む方法は?
- 12. PHPでCSSを使ってhtmlページを読み込む方法
- 13. ファイルからの入力を読み込み、出力をC言語の別のファイルに書き込む方法
- 14. require.jsで1つの言語のみを読み込むi18n
- 15. C言語でCファイルを読む#
- 16. Cでmallocを使ってテキストファイルを配列に読み込む
- 17. 別のjsファイルから言語キーを読み込む方法は?
- 18. cssshを使ってCassandraにスキーマファイルを読み込む方法
- 19. URLを使ってURLからwsdlを読み込む方法
- 20. `FindResourceEx()`と `LoadResource()`を使って新しいメニューを読み込む方法は?
- 21. マークアップ言語(C#)に画像を埋め込む方法は?
- 22. C++ ByteをIntegerとして読み込む方法endianness independent?
- 23. C#の使用方法拡張スマートデータを読み込むには?
- 24. C言語でRDF/XMLファイルを読む#
- 25. vbscriptを使ってテキストファイルから20行ごとに読み込む方法は?
- 26. HighCharts&MVC:グラフ定義とデータをJSONで読み込む方法は?
- 27. C言語での32ビットバイナリでの読み込み
- 28. C++でSDLを使用してファイルを読み込む方法は?
- 29. アプリエンジンndb - idを使ってキーでエンティティを読み込む方法は?
- 30. PyObjCを使ってWebKit WebViewでユーザーCSSを読み込む方法は?
ネイティブC++ [ライブラリ](https://www.tensorflow.org/api_docs/cc/namespace/tensorflow#readbinaryproto)の代わりにC++でC APIを使用しようとしているのはなぜですか? –
実際、テンソルフローの外側にグラフを読み込むためにtensorflowのC++ apiを使用したいと思っています –