如何解决无法添加第四卷积层
我对机器学习非常陌生,当我看卷积神经网络的教程时,我想独自尝试如何提高准确性。但是,当我尝试向模型添加另一个卷积和池化层时,它显示了一条错误消息。这是在我添加图层之前:
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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。