我运行的教程示例cifar10_cnn.py从这里。
以下是测试的环境/配置:
这个程序花了大约一天半的时间完成了200个纪元。下图显示了标题和最后三个时代。
使用Theano后端
X_train形状:(50000L,32L,32L,3L)...
纪元198/200 50000/50000[==================================================================================================================================================================================================================================================================================================================损失:1.7894-会计科目:0.3497-会计科目
纪元199/200 50000/50000 [==============================] - 617s-损失: 1.8111-acc: 0.3446-val_loss: 1.6960-val_acc: 0.3824
纪元200/200 50000/50000[========================================================================================================================================================================================================================-612s-损失:1.8005-会计科目:0.3497-会计科目:1.6164-会计科目:0.4041
我这里有两个问题:
谢谢你的评论。
这可能不是整个主题的答案,但为了获得正确的图像形状,您应该验证图像通道是形状的第一项还是最后一项。考虑到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中。因此,我想结束这个问题。顺便说一句,还有一条信息是,设置图像和尺寸将创建一个不同的网络架构。以下输出显示了使用此功能与不使用此功能的区别。
Using Theano backend.
with K.set_image_dim_ordering('th')
X_train shape: (50000L, 3L, 32L, 32L)
50000 train samples
10000 test samples
InputLayer (None, 3L, 32L, 32L)
Convolution2D (None, 32, 32L, 32L)
Relu (None, 32, 32L, 32L)
Convolution2D (None, 32, 30L, 30L)
Relu (None, 32, 30L, 30L)
MaxPooling2D (None, 32, 15L, 15L)
Dropout (None, 32, 15L, 15L)
Convolution2D (None, 64, 15L, 15L)
Relu (None, 64, 15L, 15L)
Convolution2D (None, 64, 13L, 13L)
Relu (None, 64, 13L, 13L)
MaxPooling2D (None, 64, 6L, 6L)
Dropout (None, 64, 6L, 6L)
Flatten (None, 2304)
Dense (None, 512)
Relu (None, 512)
Dropout (None, 512)
Dense (None, 10)
Softmax (None, 10)