Tensorflow Rerained Model在Android设备上的表现不同

时间:2018-04-18 16:22:08

标签: android python tensorflow

我已经使用一些自定义图像对模型进行了重新训练,如poets教程的tensorflow中所述。

使用以下命令在计算机上运行模型时 python -m scripts.label_image --graph=tf_files/retrained_graph.pb --image=tf_files/test_photos/apple.jpg

我期待它被归类为苹果,我得到了正确的分类结果:

  

apple 1.0 orange 1.40016e-08 lemon 2.19029e-09

当我将重新训练的模型和标签文件复制到android studio的资源文件夹并构建apk时,即使我向模型提供相同的图像,我也会获得不同的分类结果。

See the image of the classification result from the app that is built using the same model

我认为问题是由anaconda和android studio的不同tensorflow版本引起的。因此,我将tensorflow版本升级到1.7.0以构建模型,并在android studio tensorflow的依赖项中

compile 'org.tensorflow:tensorflow-android:+' 

我也尝试了依赖

compile 'org.tensorflow:tensorflow-android:1.7.0'

但我收到了另一个错误,应用程序在启动后立即崩溃,所以我不得不转回

'org.tensorflow:tensorflow-android:+' 

1 个答案:

答案 0 :(得分:0)

最后,即使完成了优化和量化,我也无法使其适用于移动设备的张量流。移动设备和计算机上的相同图像完全不同。

因此,我改为Tensorflow Lite。有了tensorflow lite,我的问题就解决了。简短说明:Windows上不支持Tensorflow lite(特别是toco),因此我不得不使用ubuntu。