【问题标题】:Error when checking input: expected conv2d_6_input to have 4 dimensions, but got array with shape (270, 50, 50)检查输入时出错:预期 conv2d_6_input 有 4 个维度,但得到了形状为 (270, 50, 50) 的数组
【发布时间】:2019-07-26 22:35:46
【问题描述】:

图片 (50x50)

model =Sequential()
model.add(Conv2D(64,3,3,input_shape=(50,50,1)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64,3,3,input_shape=(50,50,1)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Flatten())
model.add(Dense(64))

model.add(Dense(5))
model.add(Activation('softmax'))



model.fit(X_train,y_train,epochs=5)

错误:检查输入时出错:预期 conv2d_6_input 有 4 个维度,但得到的数组形状为 (270, 50, 50)

【问题讨论】:

  • X_train = X_train.reshape(-1, 50, 50, 1) 会解决这个问题。
  • @Mitiku 谢谢!
  • 为什么第二个Conv2D的输入和第一个一样大?由于您正在执行 MaxPool 并且未指定“相同”填充,它不应该更低吗?

标签: python tensorflow keras


【解决方案1】:

Conv2D 需要 4 维,因为它需要一个颜色通道(图像可以是灰度、RGB 等)

您需要使用np.expand_dims 扩展维度以说明此频道

【讨论】:

    猜你喜欢
    • 2020-04-15
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2023-03-04
    相关资源
    最近更新 更多