2017-02-02 3 views
4

TensorFlow Android Camera Demoは、優れたパフォーマンスを実現するライブ画像認識にInception5h modelを使用しています。私はInceptionV3 modelと一緒にInception5hを再学習することに成功していないので、画像認識ではあまりうんざりしていません。だから私は初めに、Inception5hモデルを再学習しようとしています。私はretrain.pyを修正しようとしましたが、明らかにv3モデル用に書かれています。 5hモデルには、 "pool_3/_reshape:0"、 "DecodeJpeg/contents:0"または "ResizeBilinear:0"テンソルが含まれていません。他にも違いがあります。TensorFlow Androidカメラのデモからのリレイニングインセプション5hモデル

私はマシンラーニングとTensorFlowで少し初心者ですので、私は何をしなければならないかについて明確なステップを高く評価しています。

ありがとうございました! retrain.pyスクリプトの終わりに

+1

download.tensorflow.orgで発見inception5hモデルがすでにある携帯推論のために使用されていないノードを剥奪されますDecodeJpegとResizeBilinearノードが見つからない理由再学習のためにそれらを追加し直すことができます(Inceptionv3 GraphDefを参照として使用できるはずです)。または、画像データをサイズ224x224のRGB形式に変換するだけです。 –

+0

@AndrewHarp、フルインセプション5Hモデルをリトレインし、後でAndroid用のモデルでoptimize_for_inference.pyを実行することをお勧めしますか? –

答えて

1

retrain.pyスクリプトのようになり、tutorialmobilenetアーキテクチャで動作するように更新されました。

あなたの問題の最初の部分を解決するので、実際には始まりません.5hですが、それはinception5hよりはるかに精度の高いモバイルでうまく動作します。

アンドロイドの例で実際に実行するには、まだthese settingsを更新する必要があります。

私はあなたがちょうどthe settings determined for the mobilenet you choose, from the retrain scriptをコピーすることができると思うし、大丈夫かもしれない。


あなたがretrain.pyにTensorBoardでグラフを探索するだろうそれらを決定するために、私は考えることができる最も簡単な方法は、設定を持っていなかった別のネットワークを使用したい場合。だから、

あなた本当には、あなたがそれをダウンロードして解凍でき、インセプション5Hを使用したい場合:

curl -O https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip 
unzip -d inception5h inception5h.zip 

次に何かtensorboardにグラフ.pbファイルを変換するには、Tensorflow for Poets: 2 codelabrepoから、この簡単なスクリプトをつかみます使用することができます。

curl -O https://raw.githubusercontent.com/googlecodelabs/tensorflow-for-poets-2/master/scripts/graph_pb2tb.py 

そして、あなたのgraph.pb上でそれを実行します。

mkdir tb_graph 
python graph_pb2tb.py tb/inception5h inception5h/tensorflow_inception_graph.pb 

そしてopen it in tensorboard

tensorboard --logdir tb_graph 

そして、グラフでつつくと、あなた自身のmodel_info辞書を埋めるために必要なノードの名前を見つけるために、比較的簡単かもしれません。

私はこれがあなたのように設定したいと思いノードだと思うあなたのbottleneck_tensor

TensorBoard screenshot of inception 5h with avgpool0/reshape highlighted

1

あなたはこれらの行に気づくことができます。

output_graph_def = graph_util.convert_variables_to_constants(
    sess, graph.as_graph_def(), [FLAGS.final_tensor_name]) 
with gfile.FastGFile(FLAGS.output_graph, 'wb') as f: 
    f.write(output_graph_def.SerializeToString()) 

は、ここですべての変数は、プロトコルバッファ(PB)バイナリのファイル(「WB」)の定数として保存されます。また、モデルのクラスの名前をテキストファイルに保存する必要があります。アンドロイドのドキュメンテーションに言及すると、テンソルフローのアンドロイドパスにある "assets"という名前のフォルダにこれらの2つのファイルを保存する必要があります。次に、ここで見ることができる開始-v3モデルをロードするために行うべきいくつかの変更があります: https://github.com/tensorflow/tensorflow/issues/1269 これが助けてくれることを望みます!

+0

ご回答ありがとうございますが、それは私が解決しようとしているものではありません。私はすでにAndroidアプリでモデルを読み込む方法を知っています。私がしようとしているのは、Inception5hモデルをリトレインすることです。Inception5hモデルは、はるかにスリムなインセプションモデルであり、モバイルデバイスではるかに高速です。 – alesko007

+0

よろしいですか?私は開始時に働いていました - 私はあなたを助けることはできません。あなたの研究に幸運を祈る! – chrisrn

関連する問題