2017-05-24 6 views
1

カスタムモデルは、Lenovo Yoga Tab 3タブレットのTFカメラデモのTensor Flow(TF)モジュールを実行するのに約4秒かかります
TFツールを使用してインターフェイスを最適化した後です。テンソルフローカメラのデモはアンドロイドデバイスで時間がかかります。どのように最適化する?

遅延を改善するにはどうすればよいですか? TFへの画像サイズを縮小できますか?今では、入力として299x299の画像が必要です。 「はい」の場合、推奨画像サイズは何ですか?ビルディング中のTF最適化技術を使用することができますか?

+0

私も推論時間の問題があります。私はかなり速いが、モデルはおそらく類似している場合でも非常に遅くなる任意のカスタムモデルは、デフォルトのアプリケーションを見つける。 – JCooke

答えて

0

遅延を改善するために、おそらくTensorFlowが提供する8ビットの量子化ツールを試すことができます。彼らにはこれを行う特別なツールがあります:グラフ変換hereを読むことができます。

例えば、これは私がAPKにそれを構築する前に、私は凍結し、モデルに何をすべきかです:

/home/kwotsin/tensorflow-android/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/transform_graph \ 
--in_graph=./frozen_model_mobilenet.pb \ 
--out_graph=./quantized_model_mobilenet.pb \ 
--inputs='Placeholder_only' \ 
--outputs='MobileNet/Predictions/Softmax' \ 
--transforms=' 
    add_default_attributes 
    strip_unused_nodes(type=float, shape="1,299,299,3") 
    remove_nodes(op=Identity, op=CheckNumerics) 
    fold_constants(ignore_errors=true) 
    fold_batch_norms 
    fold_old_batch_norms 
    quantize_weights 
    quantize_nodes 
    strip_unused_nodes 
    sort_by_execution_order' 

入力サイズを変更するには、私はそれが入力サイズモデルから必要とするものに依存します推測します開始。現在のところ、私のアプリケーションでは299の画像サイズを使用しています。推論速度は非常に速く、通常は1秒未満です(もちろん、これはハードウェアにも依存しますが、LG G3で実行しました)。あなたのモデルが[None、299、299、3]という形のテンソルのバッチを取り入れたら、あなたのイメージサイズは299である必要があります。そうでなければ、ClassifierActivity.javaファイルのイメージサイズを変更してみてください。

クラシファイアのパフォーマンスは、実行する必要のあるタスクによって異なるため、推奨される画像サイズはないと思います。たとえば、単純に色を分類する非常に単純な作業を行っている場合、私はあなたがそれを行うために非常に高解像度の画像を必要としないと思います。一方、非常によく似た外観を持つオブジェクトを分類しようとすると、画像サイズが大きくなると、分類子に多くの情報を与えるのに役立ちます。これは、モデルがどのようなトレーニングを行ったかによって異なります。

+0

私はTF関数transform_graphをインターフェイス関数の最適化の有無にかかわらず使用しましたが、生成される結果は元のものと同じではなく、正しくありません。この機能はハードウェアに依存しており、少なくともLenovoタブレットでは機能していないようです –

関連する問題