私はbazelコマンドを使い、テンソルフローアンドロイドデモアプリケーションを作成しました。apkは149MBです。 apkのサイズを縮小するためのビルドオプションはありますか?テンソルフローのアンドロイドデモアプリのサイズを縮小する方法は?
ありがとうございます。
私はbazelコマンドを使い、テンソルフローアンドロイドデモアプリケーションを作成しました。apkは149MBです。 apkのサイズを縮小するためのビルドオプションはありますか?テンソルフローのアンドロイドデモアプリのサイズを縮小する方法は?
ありがとうございます。
(おそらくbazel build -c opt
以外の)ビルドオプションはわかりませんが、私はAPKにtensorflow_inception_graph.pbという2つの50MBの同じコピーが含まれていることに気付きました。 1つは圧縮解除され(APKアセット/ tensorflow_inception_graph.pbにあります)、1つは圧縮されています(APK内のassets/inception5h.zipというネストされたzipファイルの最上位にあります)。
量子化を実行してモデルのサイズを小さくする必要があります。 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を構築し続けました。
'strip_unused_nodes(type = float、shape =" 1,299,299,3 ")は何ですか? – Maarten
テンソルフローのアンドロイドサイズを減らすための一般的なヘルプについては、[この質問](https://stackoverflow.com/questions/41400873/how-to-reduce-tensorflow-size-for-android)を参照してください。 –