我正在使用Tensorflow构建CNN模型,而不使用任何前端API,如Keras。我正在创建一个VGG-16模型并使用预先训练过的权重,并希望对最后一层进行微调以达到我的目的。
按照此处的教程,http://cv-tricks.com/tensorflow-tutorial/training-convolutional-neural-network-for-image-classification/ 我重新创建了训练脚本并根据我的要求进行了修改。但是,我的训练没有发生,训练精度停留在50.00%,验证准确性正在形成重复数字的模式。 附件是相同的截图。
我已经被困在这几天了,似乎无法找到错误。任何帮助表示赞赏。
代码很长,因此这是同一个
的gist file答案 0 :(得分:0)
您的交叉熵是错误的,您正在将您的logits与logits的softmax进行比较。
此:
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=layer_fc2,
labels=y_pred)
应该是:
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=layer_fc2,
labels=y_true)
有些事情需要注意。我不会训练一些数据点,然后在同一个数据点上进行评估。这样做可能会影响您的训练准确性。另一点需要注意的是,tf.argmax(tf.softmax(logits))
与tf.argmax(logits)
相同。