我正在尝试在我的Android应用中使用TensorFlow。但.so文件比需要的大一点,有没有办法减少libtensorflow_inference.so大小?
答案 0 :(得分:5)
目前还没有很好的指南,但你可以先使用print_selective_registration_header脚本删除不需要的操作: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/print_selective_registration_header.py
这需要更广泛地记录。
答案 1 :(得分:3)
除了选择性注册,您还可以尝试将-c opt
传递给bazel。对我来说,这需要未压缩的.so大小从24mb - > 13mb,压缩自5.5mb - > 4.4MB。
答案 2 :(得分:0)
您可以尝试划分apk以减少apk大小。 Check this
答案 3 :(得分:0)
我不知道如何减小.so文件的大小,但是有一种方法可以通过压缩TensorFlow模型来节省大量空间。有关详细信息,请参阅this excellent blog post by Pete Warden。
总之,您可以使用String user = "root";
String pass = "1234";
String[] restoreCmd = new String[]{"mysql", "--user=" + user, "--password=" + pass, "-e", "source " + path};
Process process;
try {
process = Runtime.getRuntime().exec(restoreCmd);
int procCom = process.waitFor();
if (procCom == 0) {
lbl_restore.setText("Restore Succes!");
} else {
lbl_restore.setText("Can't Restore!");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
和optimize_for_inference
将87MB型号压缩到24MB(在构建APK时,您会看到节省空间)。