【问题标题】:Unable to add fourth convolutional layer无法添加第四个卷积层
【发布时间】:2020-08-12 18:55:51
【问题描述】:

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

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", dilations=[1, 1, 1, 1], explicit_paddings 由 1 减去 3 导致的负维度大小=[], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true](max_pooling2d_26/MaxPool, conv2d_36/Conv2D/ReadVariableOp)' 输入形状:[?,1,1,64 ],[3,3,64,64]。网站:stackoverflow.com

【问题讨论】:

    标签: tensorflow keras deep-learning neural-network conv-neural-network


    【解决方案1】:

    这是因为您在网络内部过多地降低了维度。在你的卷积层中使用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()
    

    【讨论】:

      猜你喜欢
      • 2018-12-25
      • 2020-09-07
      • 2023-03-08
      • 2019-02-08
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多