在我的tensorflow CNN的第一步中,损失变成了NAN
在我的tensorflow CNN的第一步中,损失变成了NAN。
1。网络:
3隐藏的分层(2卷积层+1隐藏的fullconnect分层)+读出分层。
2.三名隐蔽的囚徒:
a)重量:
W = tf.Variable(tf.truncated_normal(wt,stddev = 0.1,name ='wights'))
b)偏见:
b = tf.Variable(tf.fill([W.get_shape()。as_list()[ - 1]],0.9),name ='biasses')
c)激活:
RELU
d)辍学
0.6。
**即使退出为0.0,损失也会减少
SOFTMAX
4:损失函数:
tf.reduce_mean(-tf.reduce_sum(_lables * tf.log(_logist),reduction_indices = [1]))
5.optimizer:
tf.train.AdamOptimizer
learning_rate:0.0005
**即使learn_rate = 0,失败率也会降低
由于我们没有完整的源代码,很难看到问题。 但是,您可能会尝试在费用函数中使用'tf.nn.softmax_cross_entropy_with_logits'。 例如:
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(predictions, labels))
您可以在https://github.com/nlintz/TensorFlow-Tutorials上使用'tf.nn.softmax_cross_entropy_with_logits'找到完整的代码示例。
到目前为止,我已经遇到了两种可能导致nan
情况:
square
,结果太大) sqrt
和log
这样的函数不会带负输入,所以它们会返回nan
) 上一篇: Loss turns to be NAN at the first round step in my tensorflow CNN