我正在训练一个复杂的神经网络来驾驶玩具车,不管我做了什么,训练的准确性不会超过30-35%,这是当convnet被随机初始化时的起点。奇怪的是,一个简单得多的模型,一个只有一个隐层,没有卷积的神经网络,做得更好,一直保持在65-75%的精度。我已经在这个项目上工作了一年多了,我觉得我已经尽了一切努力使convnet变得更好。我做错了什么?
initial = tf.truncated_normal(shape, stddev=0.1)初始化所有权重initial = tf.constant(0.1, shape=shape)初始化所有偏差Convnet Notes (均产生相同的不良结果):
发布于 2017-06-18 15:48:37
在convnet代码中,手动计算交叉熵:
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y_conv), reduction_indices=[1]))
train_step = tf.train.AdamOptimizer(1e-5).minimize(cross_entropy)如果你这样做,你可能会遇到数值稳定性问题。相反,您应该使用
tf.nn.softmax_cross_entropy_with_logits()如果使用tensorflow版本1.8或更高版本,请使用
tf.nn.softmax_cross_entropy_with_logits_v2()为tensorflow的API而哭泣。
有关更多信息,请参见此问题:https://github.com/tensorflow/tensorflow/issues/2462
https://datascience.stackexchange.com/questions/19630
复制相似问题