bazel 명령을 사용하고 tensorflow android 데모 앱을 만들었습니다. apk는 149MB입니다. apk의 크기를 줄일 수있는 빌드 옵션이 있습니까?tensorflow android 데모 앱의 크기를 줄이는 방법은 무엇입니까?
고마워요.
bazel 명령을 사용하고 tensorflow android 데모 앱을 만들었습니다. apk는 149MB입니다. apk의 크기를 줄일 수있는 빌드 옵션이 있습니까?tensorflow android 데모 앱의 크기를 줄이는 방법은 무엇입니까?
고마워요.
(아마도 bazel build -c opt
이외의) 빌드 옵션을 모르지만 APK에 tensorflow_inception_graph.pb의 동일한 50MB 사본이 두 개 포함되어 있습니다. 하나는 압축되지 않았으며 (asset/tensorflow_inception_graph.pb의 APK에 있음) 하나는 압축되었습니다 (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
tensorflow 안드로이드 크기 감소에 대한 일반적인 도움말은 [이 질문 (https://stackoverflow.com/questions/41400873/how-to-reduce-tensorflow-size-for-android)을 참조하십시오. –