【发布时间】:2018-07-13 23:58:35
【问题描述】:
我正在尝试从一篇研究论文中复制一个深度卷积神经网络。我已经实现了架构,但是在 10 个 epoch 之后,我的交叉熵损失突然增加到无穷大。这可以在下面的图表中看到。您可以忽略问题发生后准确性的变化。
Here 是带有架构图的 github 存储库
在做了一些研究之后,我认为使用 AdamOptimizer 或 relu 可能会有问题。
x = tf.placeholder(tf.float32, shape=[None, 7168])
y_ = tf.placeholder(tf.float32, shape=[None, 7168, 3])
#Many Convolutions and Relus omitted
final = tf.reshape(final, [-1, 7168])
keep_prob = tf.placeholder(tf.float32)
W_final = weight_variable([7168,7168,3])
b_final = bias_variable([7168,3])
final_conv = tf.tensordot(final, W_final, axes=[[1], [1]]) + b_final
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=final_conv))
train_step = tf.train.AdamOptimizer(1e-5).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(final_conv, 2), tf.argmax(y_, 2))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
编辑 如果有人感兴趣,解决方案是我基本上输入了不正确的数据。
【问题讨论】:
-
事件发生后,损失低很多,准确率高很多?您能否在每个时期后使用其他随机洗牌数据集设置重现该问题?我怀疑这是一个偶然的对抗性案例。
-
问题中提到的问题出现后忽略准确性
-
@Jai 是的,但为什么忽略它?这更有趣。
-
是的...我认为这不是正确的图表...
-
损失为 0,因为图表无法显示 nan(infinity) 的值。准确率提高是因为问题发生后,模型将每个类别标记为“0”。恰好将所有内容标记为“0”是非常准确的
标签: python tensorflow machine-learning deep-learning conv-neural-network