2017-05-23 11 views
0

私はbazelコマンドを使い、テンソルフローアンドロイドデモアプリケーションを作成しました。apkは149MBです。 apkのサイズを縮小するためのビルドオプションはありますか?テンソルフローのアンドロイドデモアプリのサイズを縮小する方法は?

ありがとうございます。

+0

テンソルフローのアンドロイドサイズを減らすための一般的なヘルプについては、[この質問](https://stackoverflow.com/questions/41400873/how-to-reduce-tensorflow-size-for-android)を参照してください。 –

答えて

0

(おそらくbazel build -c opt以外の)ビルドオプションはわかりませんが、私はAPKにtensorflow_inception_graph.pbという2つの50MBの同じコピーが含まれていることに気付きました。 1つは圧縮解除され(APKアセット/ tensorflow_inception_graph.pbにあります)、1つは圧縮されています(APK内のassets/inception5h.zipというネストされたzipファイルの最上位にあります)。

0

量子化を実行してモデルのサイズを小さくする必要があります。 TensorFlowにはグラフ変換という特別なツールがあります。あなたはさらにhereを読むことができます。例えば

、これは私が私のモデルを量子化するために何をすべきかです。これを使用して

/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' 

、私は凍結されたモデルの約四分の一にモデルサイズを縮小。

重要なことは、作成する前に資産フォルダ内の不要なグラフ/ファイルを消去することです。かつて私は古いファイルをクリアしていなかったので、アセットファイルにファイルを積み上げていたために、ファイルサイズが大きすぎる(200 + MB以上は変わった)まで私のAPKを構築し続けました。

+0

'strip_unused_nodes(type = float、shape =" 1,299,299,3 ")は何ですか? – Maarten

関連する問題