私はアンドロイドアプリでTensorFlowを使用しようとしています。しかし、.soファイルは必要以上に少し大きめですが、libtensorflow_inference.soサイズを減らす方法はありますか?あなたはAPKのサイズを小さくするためにあなたのapkを分割しようとすることができますアンドロイドのテンソルフローサイズを減らすには?
リンクTensorFlow-Android-Inference
私はアンドロイドアプリでTensorFlowを使用しようとしています。しかし、.soファイルは必要以上に少し大きめですが、libtensorflow_inference.soサイズを減らす方法はありますか?あなたはAPKのサイズを小さくするためにあなたのapkを分割しようとすることができますアンドロイドのテンソルフローサイズを減らすには?
リンクTensorFlow-Android-Inference
。 Check this。
はまだこれを行うには良いガイドはありませんが、あなたはprint_selective_registration_headerスクリプトを使用して不要なOPSを除去することで起動することができます。 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/print_selective_registration_header.py
これは、より広範囲に文書化する必要があります。
ありがとうございます、そうすることは素晴らしいことです。 また、protobufについてはどうですか?未使用のprotobufコードを削除する方法はありますか? – Vardan95
こんにちは、ops_to_register.hを生成し、-DSELECTIVE_REGISTRATIONを追加し、https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/cmake/CMakeLists.txtにフラグを立て、ops_to_register.hをインクルードしました。しかしそれは.soのサイズには影響しませんでした。 – Vardan95
選択登録に加えて、-c opt
をbazelに渡すことができます。私の場合、これは24MB→13MBの圧縮されていない.soサイズをとり、5.5MB→4.4MBの圧縮をとります。
私はこのフラグをhttps://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/cmake/CMakeLists.txtに入れてもいいですか? – Vardan95
私は、.soファイルのサイズを小さくする方法はわかりませんが、TensorFlowモデルを圧縮できるようにすることで、膨大なスペースを節約する方法があります。詳細はthis excellent blog post by Pete Wardenを参照してください。
要約すると、optimize_for_inference
とquantize_graph
を使用すると、87MBモデルを24MBに圧縮することができます(APKを構築するときにこの領域が節約されます)。
ありがとうございますが、私は.soライブラリのファイルサイズを小さくしたい – Vardan95