Convnet:验证损失并没有大大减少,但准确性正在提高



使用TensorFlow,我已经构建了一个简单的CNN进行分类。它具有以下定义:

Input Tensor : 32,32,1 Grayscale Image
1 Conv Layer 3x3x32
Relu Activated
2x2 Max Pooled
128 FC1
43 FC2 # 43 classes

可以在GitHub上的此笔记本上找到完整的代码

validation lossaccuracyEpochs 100 1000 2000 是是

epoch 100 validation loss 3.67, validation accuracy 12.05%
epoch 1000 validation loss 3.234, validation accuracy 57.63%
epoch 2750 validation loss 3.111, validation accuracy 69.25%

除非我误解或在某处有一个错误,否则网络正在学习。但是,验证损失仅略有下降。

这是什么意思?我如何使用此信息来改善网络?

这是TensorFlow中的一个经典错误:您不应在输出上应用软max,然后在tf.nn.softmax_cross_entropy_with_logits上应用softmax。

操作tf.nn.softmax_cross_entropy_with_logits期望未量的logits(即没有软磁性)。从文档中:

警告:此操作期望未量化的logits,因为它在内部进行logits softmax以提高效率。请勿将此OP称为SoftMax的输出,因为它会产生不正确的结果。

最新更新