2016-07-14 6 views
0

コンピュータ上でPython APIを使用してニューラルネットワークを訓練し、後でAndroidアプリケーション(C APIを使用)で結果グラフを使用したい場合は、 。残念ながら、このワークフローの例は、削除されたAPIの部分(例:freeze_graph)を参照しています。これを自分自身でしようとすると、利用できない初期化されていない変数やカーネル操作に関する多くのエラーが発生します。グラフをPythonで訓練し、Androidアプリケーションで使用

このプロセスの目的とするワークフローは何ですか?グラフの保存と後でC/C++での使用については、必ずしもAndroid固有である必要はありません。

+0

グラフをPythonコードからファイルにシリアル化できる限り、後でC++でグラフを読むことができます。あなたが保存しているデータについて何を知っていますか? –

+0

私はグラフを保存する際に問題はありませんが、C言語で読み込んだとき、 'OpKernelはこれらのattrsを使ってOp 'Mod'をサポートするために登録されていません。 –

+0

あなたのPCとAndroid TensorFlowのバージョンはどちらも最新(または少なくとも_same_)ですか? –

答えて

0

重要な試行錯誤の末、freeze_graphスクリプトがこれを動作させるために大変重要であることがわかりました。あなたはそれを見つけることができますhere。私の現在のワークフローは:

  1. グラフを生成し、ネットワークを(Pythonで)訓練します。
  2. グラフの定義とチェックポイントを保存します。 AFAIKグラフがテキスト形式で保存されています。
  3. freeze_graph実行ファイルをビルドするには、Bazelを使用します。
  4. freeze_graph実行ファイルを、グラフ定義の場所、チェックポイントの場所、および希望する出力ノード名のパラメータで実行します。
  5. Cでは、セッションを作成し、グラフファイルを読み込み、目的の入力テンソルでセッションを実行します。グラフをフリーズすると、変数の初期化はではなく、が必要です。
関連する問題