android - Tensorflow 重新训练模型性能

标签 android tensorflow

我正在使用 Tensorflow 作为诗人指南来训练自己的模型。我已经创建了 retrained_graph.pb 和 retrained_labels.txt。当我在应用程序中使用它时,我收到错误

引起:java.lang.UnsupportedOperationException:Op BatchNormWithGlobalNormalization 在 GraphDef 版本 21 中不可用。它已在版本 9 中删除。使用 tf.nn.batch_normalization()。在 org.tensorflow.Graph.importGraphDef( native 方法) 在 org.tensorflow.Graph.importGraphDef(Graph.java:118)

之后进一步训练模型以供应用使用 Tensorflow for mobile博客并创建optimized_graph.pb、rounded_graph.pb、mmapped_graph.pb 文件。

optimized_graph.pb 和 rounded_graph.pb 文件在 Android 应用程序中工作,没有任何错误。 使用 mmapped_graph.pb 时出现错误,无法初始化:java.io.IOException:不是有效的 TensorFlow Graph 序列化:无效的 GraphDef

使用optimized_graph.pb和rounded_graph.pb文件时应用程序的性能不好。虽然应用程序相机屏幕不包含任何花卉照片,否则随机花卉名称显示的置信率很高。任何只检测花并在没有花时保持空白的方法。 Screenshot

最佳答案

该应用程序的性能非常好,并且在手机 GPU 上运行速度非常快。问题在于你如何构建自己的模型。事实上,该应用程序的 tensorflow 图是为了根据您为其指定的类来识别图像而构建的。换句话说,例如,如果您教模型识别 4 个不同类别的图像,它会尝试标记它在这 4 个类别中看到的所有内容。 因此,当相机屏幕不包含花朵时,您会得到错误的结果。

“解决”此问题的一种方法是添加一个带有随机图像的额外类,这可能会对无花照片具有很高的置信度。

如果你想要一个更严格的模型,你必须使用完全不同的算法。

但是请记住,应用程序中使用的可能是计算机图像识别的最新技术

关于android - Tensorflow 重新训练模型性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859221/

相关文章:

android - 如何获取 Android 应用程序的 AndroidManifest.xml

tensorflow - 如何将 tfjs 的 body-pix 模型转换为 keras h5 或 tensorflow 卡住图

android - 如何在android中过滤自定义 ListView

android - NumberFormat.getCurrencyInstance() 在某些国家/地区是否无法返回正确的符号?

python - 通用句子编码器,降低向量维度

python - 我想使用 wget 和变量作为参数

python - 为什么 tensorflow 常数是可馈送的 true

python - 如何在 Tensorflow 中使用逐个事件的权重?

android - 从我的自定义主屏幕启动时相机和 map 崩溃

android - 如何在我们的应用程序中使用其他应用程序的应用程序功能