【问题标题】:ValueError: Shapes (None,) and (None, 24, 24, 5) are incompatibleValueError:形状 (None,) 和 (None, 24, 24, 5) 不兼容
【发布时间】:2022-02-25 02:49:40
【问题描述】:

我正在尝试对血液及其 spo2 值(血液中的氧百分比)的图像数据进行分类,spo2 值有 4 个类别

X_train.shape => (8969, 224, 224, 3)
y_train.shape => (8969,)

模型的输出将是 spo2 的百分比

y_train.shape
>>> array([98, 98, 95, ..., 98, 95, 98])

模型架构

X_train = np.array(X_train)
y_train = np.array(y_train)

model = Sequential()
model.add(Conv2D(filters=64 , kernel_size=(3,3), activation='relu' , input_shape = (X_train.shape[1:])))
model.add(MaxPool2D(pool_size=(3,3)))
model.add(Conv2D(filters=32 , kernel_size=(3,3), activation='relu'))
model.add(MaxPool2D(pool_size=(3,3)))
model.add(Dense(units=512 , activation='relu'))  
model.add(Dense(units=128 , activation='relu'))  
model.add(Dense(units=4, activation='softmax')) 

model.compile(optimizer='adam' , loss='categorical_crossentropy' ,  metrics=(['accuracy']))
history = model.fit(X_train , y_train , epochs=5)

拟合模型时出现错误

ValueError: Shapes (None,) and (None, 24, 24, 4) are incompatible

【问题讨论】:

  • 如果您edit 包含完整的错误回溯,而不仅仅是最后一行,这可能会有所帮助,因为其中包含有价值的信息

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


【解决方案1】:

这可能不是真正的问题,但是当我删除卷积网络上的 flatten 层时,我遇到了类似的错误。您在第二个最大池化层和第一个密集层之间缺少Flatten() 层。像这样编辑代码:

...
model.add(MaxPool2D(pool_size=(3,3)))
model.add(Flatten())
model.add(Dense(units=512 , activation='relu'))  
...

这里是关于 Flatten 层的更多信息:What is the role of "Flatten" in Keras?

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 2022-06-23
    • 2021-08-25
    • 2021-12-05
    • 2020-08-27
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多