无法添加第四卷积层

问题描述

我对机器学习非常陌生,当我看卷积神经网络的教程时,我想独自尝试如何提高准确性。但是,当我尝试向模型添加另一个卷积和池化层时,它显示了一条错误消息。这是在我添加图层之前:

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,activation='relu'))
model.add(layers.MaxPooling2D((2,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,activation='relu'))
model.add(layers.Dense(62))

这是它给我的错误消息:

ValueError:'{{node conv2d_36 / Conv2D}}的1中减去3导致的负尺寸大小= Conv2D [T = DT_FLOAT,data_format =“ NHWC”,膨胀= [1、1、1、1、1],explicit_paddings = [],padding =“ VALID”,步幅= [1、1、1、1],use_cudnn_on_gpu = true](max_pooling2d_26 / MaxPool,conv2d_36 / Conv2D / ReadVariableOp)',输入形状为[?,1,1,64 ],[3,3,64,64]。 site: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,padding='same'))
model.add(layers.MaxPooling2D((2,padding='same'))
model.add(layers.Flatten())
model.add(layers.Dense(64,activation='relu'))
model.add(layers.Dense(62))

model.summary()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...