栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Tensorflow精度为.99,但预测很糟糕

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Tensorflow精度为.99,但预测很糟糕

代码错误

您的代码中存在多个错误:

  • 您不应
    tf.nn.sigmoid_cross_entropy_with_logits
    使用softmax层的输出进行调用,而应使用未 缩放的logits进行调用

警告:此操作期望未缩放的logit,因为它在内部对logit执行softmax以提高效率。不要使用softmax的输出来调用该操作,因为这会产生错误的结果。

  • 实际上,由于您有2个类,因此应使用softmax的损失,使用

    tf.nn.softmax_cross_entropy_with_logits

  • 使用时

    tf.argmax(pred, 1)
    ,仅将argmax应用于轴1,即输出图像的高度。您应该
    tf.argmax(pred, 3)
    在最后一个轴(尺寸为2)上使用。

    • 这可以解释为什么您获得0.99的准确性
    • 在输出图像上,它将使argmax超过图像的高度,默认情况下为0(因为每个通道的所有值均相等)

型号错误

最大的缺点是您的模型通常 很难 优化。

  • 您的softmax超过40,000个课程,这是巨大的。
  • 您不会完全利用要输出图像的事实(预测前景/背景)。
    • 例如,预测2,345与预测2,346和预测2,545高度相关,但是您没有考虑到这一点

我建议先阅读一些有关语义细分的内容:

  • 本文:用于语义分割的全卷积网络
  • 这些来自CS231n(斯坦福大学)的幻灯片:尤其是有关上采样和去卷积的部分

推荐建议

如果您想使用TensorFlow,则需要从小处着手。首先尝试一个可能包含1个隐藏层的非常简单的网络。

您需要绘制张量的所有形状,以确保它们与您的想法相对应。例如,如果进行了绘制

tf.argmax(y, 1)
,您将意识到形状
[batch_size,200, 2]
不是预期的
[batch_size, 200, 200]

TensorBoard是您的朋友,您应该尝试在此处绘制输入图像以及预测,以查看它们的外观。

尝试使用10个图像的非常小的数据集进行较小的尝试,看看是否可以过拟合并预测几乎准确的响应。


总而言之,我不确定我的所有建议,但是值得尝试,我希望这对您的成功道路有所帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号