无法添加第四个卷积层



我对机械学习很陌生,当我在看卷积神经网络的教程时,我想自己实验如何提高精度。然而,当我试图在我的模型中添加另一个卷积和池化层时,它显示了一条错误消息。这是在我添加层之前:

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
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(layers.Dense(62))

这是在之后

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
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.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(layers.Dense(62))

这是它给我的错误信息:

ValueError:对于"{{node conv2d_36/conv2d}}=conv2d[T=DT_FLOAT,data_format="NHWC",expansions=[1,1,1,1],explicit_paddings=[],paddings=";"VALID";,progress=[1,1,11],use_cudnn_on_gpu=true](max_pooling2d_26/MaxPool,conv2d_36/conv2d/ReadVariableOp(',输入形状:[?,1,1,64],[3,3,64,64]。网站:stackoverflow.com

这是因为你在网络内部减少了太多维度。在卷积层中使用padding='same'来避免这种维度错误

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', padding='same', 
input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu', padding='same'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu', padding='same'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu', padding='same'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(62))
model.summary()

最新更新