2017-05-23 3 views
0

bazel 명령을 사용하고 tensorflow android 데모 앱을 만들었습니다. apk는 149MB입니다. apk의 크기를 줄일 수있는 빌드 옵션이 있습니까?tensorflow android 데모 앱의 크기를 줄이는 방법은 무엇입니까?

고마워요.

+0

tensorflow 안드로이드 크기 감소에 대한 일반적인 도움말은 [이 질문 (https://stackoverflow.com/questions/41400873/how-to-reduce-tensorflow-size-for-android)을 참조하십시오. –

답변

0

(아마도 bazel build -c opt 이외의) 빌드 옵션을 모르지만 APK에 tensorflow_inception_graph.pb의 동일한 50MB 사본이 두 개 포함되어 있습니다. 하나는 압축되지 않았으며 (asset/tensorflow_inception_graph.pb의 APK에 있음) 하나는 압축되었습니다 (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

관련 문제