Keras教程示例cifar10_cnn.py在windows 10上的200个时代中给出了acc:0.34 val_acc:0.40?
我正在运行来自的教程示例cifar10_cnn.py 以下是测试的环境/配置:Keras教程示例cifar10_cnn.py在windows 10上的200个时代中给出了acc:0.34 val_acc:0.40?,keras,Keras,我正在运行来自的教程示例cifar10_cnn.py 以下是测试的环境/配置: 视窗10 Keras 1.2.0 Theano 0.8.2 Numpy 1.11.2 Enthow/Canopy/MKL(2017.0.1-1) .Theanoc[blas]ldflags-L-lmk2_rt 这个项目花了大约一天半的时间完成了200个时代。下图显示了标题和最后三个时代 使用Theano后端 X_列车外形:(50000L、32L、32L、3L) 纪元198/200 50000/50000[====
- 视窗10
- Keras 1.2.0
- Theano 0.8.2
- Numpy 1.11.2
- Enthow/Canopy/MKL(2017.0.1-1)
- .Theanoc[blas]ldflags-L-lmk2_rt
感谢您的评论。这可能不是整个主题的答案,但为了获得正确的图像形状,您应该验证图像通道是形状的第一项还是最后一项。考虑到Keras 2,您可以采用以下方法:
from keras import backend as K
def image_input_shape(img_width, img_height):
if K.image_data_format() == 'channels_first':
input_shape = (3, img_width, img_height)
else:
input_shape = (img_width, img_height, 3)
return input_shape
只需传递图像的宽度和高度,它就会返回正确的形状顺序
从那里你可以放弃或验证你关于“奇怪”形状的假设。我发布的问题可能只与Keras 1.2.0有关。由于Keras已升级到2.x,官方文件cifar10_cnn.py也已更改,我发布的问题可能不会出现在新的Keras中。因此,我想结束这个问题。顺便说一句,还有一条信息是,设置图像和尺寸将创建一个不同的网络架构。以下输出显示了使用此功能与不使用此功能的区别
使用无后端。
使用K.set\u image\u dim\u排序(“th”)
X_列车外形:(50000L、3L、32L、32L)
50000列车样本
10000个测试样本
输入层(无、3L、32L、32L)
卷积2D(无、32、32L、32L)
Relu(无、32、32L、32L)
卷积2D(无、32、30L、30L)
Relu(无、32、30L、30L)
MaxPoolig2D(无、32、15L、15L)
辍学(无、32、15L、15L)
卷积2D(无、64、15L、15L)
Relu(无、64、15L、15L)
卷积2D(无、64、13L、13L)
Relu(无、64、13L、13L)
MaxPoolig2D(无、64、6升、6升)
辍学(无、64、6升、6升)
展平(无,2304)
密集型(无,512)
Relu(无,512)
辍学(无,512)
密度(无,10)
Softmax(无,10)
Eduardo:谢谢你的评论。我的问题可能只与Keras 1.2.0有关。我在上面又加了一条评论。