Python Keras,输入形状不正确

Python Keras,输入形状不正确,python,image,keras,convolution,Python,Image,Keras,Convolution,我收到一个关于我的展平层输入尺寸的错误 ValueError:未完全定义“展平”输入的形状(got(0、12、10)。请确保将完整的“input\u形状”或“batch\u input\u形状”参数传递到模型的第一层。 我收到这个错误是因为我的一个维度是零,对吗?试图找出为什么它被降到零,但不确定这个错误发生在哪里 我一直在试图计算卷积层之后,扁平层之前的输出应该是什么。与model.summary()相比,我无法让它们对齐 我不确定输出形状是如何格式化的,是无、宽、长、深吗 我用来计算输出形状

我收到一个关于我的展平层输入尺寸的错误

ValueError:未完全定义“展平”输入的形状(got(0、12、10)。请确保将完整的“input\u形状”或“batch\u input\u形状”参数传递到模型的第一层。

我收到这个错误是因为我的一个维度是零,对吗?试图找出为什么它被降到零,但不确定这个错误发生在哪里

我一直在试图计算卷积层之后,扁平层之前的输出应该是什么。与
model.summary()
相比,我无法让它们对齐

我不确定输出形状是如何格式化的,是无、宽、长、深吗

我用来计算输出形状的方程式:
(宽度-过滤器大小+2(填充)/移位)+1

格式:深度、宽度、高度

第一卷积形状:10,14,14
第二个卷积形状:10,12,12

有人能解释一下为什么在下面的
model.summary()
output shape列中减少了第一个整数值的深度吗

```

```

在我的Convolution2D图层中输入的形状似乎不正确,但我已经按照文档的建议输入了

```

```


后端:Theano

这是典型的维度排序问题,您似乎已将维度排序设置为“最后一个通道”,而您放置的输入形状使用的是“第一个通道”。我被默认为“最后一个通道”,因此我对此进行了更改,但现在我收到上面的错误,请查看我的新编辑。为什么第一个值现在是1182,即批大小e正确吗?现在看来您的输入数据的形状是错误的,应该是(1182,16,16,4)。因此我输入了该值并收到了此错误
ValueError:input 0与layer conv2d_17不兼容:预期ndim=4,发现ndim=5
您做错了什么,因为我给您的形状是4D,而不是5D。
_________________________________________________________________
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
conv2d_9 (Conv2D)            (None, 2, 14, 10)         1450
_________________________________________________________________
activation_9 (Activation)    (None, 2, 14, 10)         0
_________________________________________________________________
conv2d_10 (Conv2D)           (None, 0, 12, 10)         910
_________________________________________________________________
activation_10 (Activation)   (None, 0, 12, 10)         0
=================================================================
Total params: 2,360
Trainable params: 2,360
Non-trainable params: 0
model = Sequential()

batch_size = 20
nb_epoch = 20

nb_filters = 10 
kernel_size = (3, 3)
input_shape = (4, 16, 16)
pool_size =(2, 2)

model.add(Convolution2D(nb_filters, (kernel_size[0], kernel_size[1]), input_shape=input_shape, kernel_initializer='TruncatedNormal'))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters, (kernel_size[0], kernel_size[1]), kernel_initializer='TruncatedNormal'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
model.summary()

# model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dropout(.3))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss = 'binary_crossentropy', optimizer='Adamax', metrics=['accuracy'])