tensorflow 层max_pooling2d的输入0与层不兼容:预期ndim=4,发现ndim=5,收到完整形状:[无、4、10、8、32]

blpfk2vs  于 2023-02-09  发布在  其他
关注(0)|答案(2)|浏览(316)

当我尝试定义我的模型时,我收到以下错误消息:

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'))
2ic8powd

2ic8powd1#

输入层需要NHWC或NCHW格式的数据。

N = Number of samples
H = Height of the Image
W = Width of the Image
C = Number of Channels

在大多数情况下,N保持变化,所以N被指定为None。基于您的示例,您可以提供输入形状,并在NHWC和NCHW之间转换,您可以将输入参数指定为data_format='channel_first'或data_format='channel_last'

jtjikinw

jtjikinw2#

批量大小是不需要的,因为它是自动采取的,删除它可以运行程序罚款。

相关问题