我正在学习here的教程,并且坚持简单的模型创建
model = Sequential()
model.add(Convolution2D(32, kernel_size=(3, 3), activation='relu', input_shape=(1, 28, 28)))
model.output_shape
这应该给(None, 32, 26, 26)
输出,但我却得到(None, -1, 26, 32)
。我猜提供的参数有问题,或者我需要进行其他调整。也许Keras中的Convolution2D
和Conv2D
有所更改?我正在2.2.4
后端运行Theano
答案 0 :(得分:1)
似乎通道在输入数据的第一轴上。因此,您需要将data_format
的参数设置为"channels_first"
:
model = Sequential()
model.add(Convolution2D(32, kernel_size=(3, 3),
data_format='channels_first',
activation='relu', input_shape=(1, 28, 28)))
model.output_shape
哪个给:
(None, 32, 26, 26)
答案 1 :(得分:0)
问题在于它使用Theano作为后端,可能您正在使用tensorflow(您应该再次检查设置)。您可以使用以下方法进行更改:
import os
os.environ['KERAS_BACKEND'] = 'theano'
这应该在导入keras
答案 2 :(得分:0)
就像我在评论中写道。我的代码有误。因此,请注意,输入看起来形状很差,如果更改为input_shape=(28,28,1)
,则output_shape返回(None, 26, 26, 32)
我不知道这是否是您要寻找的东西。