警告:此操作期望未缩放的logit,因为它在内部对logit执行softmax以提高效率。不要使用softmax的输出来调用该操作,因为这会产生错误的结果。
实际上,由于您有2个类,因此应使用softmax的损失,使用 tf.nn.softmax_cross_entropy_with_logits
使用时tf.argmax(pred, 1)
,仅将argmax应用于轴1,即输出图像的高度。您应该tf.argmax(pred, 3)
在最后一个轴(尺寸为2)上使用。
最大的缺点是您的模型通常 优化。
我建议先阅读一些有关语义细分的内容:
如果您想使用TensorFlow,则需要从小处着手。首先尝试一个可能包含1个隐藏层的非常简单的网络。
您需要绘制张量的所有形状,以确保它们与您的想法相对应。例如,如果进行了绘制tf.argmax(y, 1)
,您将意识到形状[batch_size, 200, 2]
不是预期的[batch_size, 200, 200]
。
TensorBoard是您的朋友,您应该尝试在此处绘制输入图像以及预测,以查看它们的外观。
尝试使用10个图像的非常小的数据集进行较小的尝试,看看是否可以过拟合并预测几乎准确的响应。
总而言之,我不确定我的所有建议,但是值得尝试,我希望这对您的成功道路有所帮助!