【问题标题】:Tensorflow retrain model performanceTensorFlow 重新训练模型性能
【发布时间】:2017-03-17 13:48:20
【问题描述】:

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

原因:java.lang.UnsupportedOperationException: Op BatchNormWithGlobalNormalization 在 GraphDef 版本 21 中不可用。它已在版本 9 中删除。使用 tf.nn.batch_normalization()。在 org.tensorflow.Graph.importGraphDef(Native Method) 在 org.tensorflow.Graph.importGraphDef(Graph.java:118)

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

optimized_graph.pb 和 rounded_graph.pb 文件在 android 应用程序中工作,没有任何错误。 使用 mmapped_graph.pb 时出现无法初始化的错误:java.io.IOException: Not a valid TensorFlow Graph serialization: Invalid GraphDef

使用optimized_graph.pb 和rounded_graph.pb 文件时应用程序性能不佳。而应用程序相机屏幕不包含任何花卉照片,否则随机显示花卉名称,置信度高。任何仅检测花朵并在不开花时保持空白的方法。 Screenshot

【问题讨论】:

    标签: android tensorflow


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢 Davide,您能否提供详细信息,以了解哪些算法用于更严格的模型或任何参考。
    • 抱歉,我目前没有...不过我建议您尝试使用负样本。我认为它真的可以带来很好的效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    相关资源
    最近更新 更多