当我尝试定义我的模型时,我收到以下错误消息:
Input 0 of layer max_pooling2d is incompatible with the layer:
expected ndim=4, found ndim=5.
Full shape received: [None, 4, 10, 8, 32].
我使用的代码是:
X_train = X_train.reshape(X_train.shape[0], 8, 10, 1)
X_test = X_test.reshape(len(X_test),10,8,1)
print(type(X_train),np.shape(X_train))
# CNN
model = Sequential()
model.add(layers.Conv2D(32, (2, 2), activation='relu',
input_shape=(4,10, 8, 1),padding='same'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(layers.Dense(10, activation='softmax'))
2条答案
按热度按时间2ic8powd1#
输入层需要NHWC或NCHW格式的数据。
在大多数情况下,N保持变化,所以N被指定为None。基于您的示例,您可以提供输入形状,并在NHWC和NCHW之间转换,您可以将输入参数指定为data_format='channel_first'或data_format='channel_last'
jtjikinw2#
批量大小是不需要的,因为它是自动采取的,删除它可以运行程序罚款。