Keras搭建基础CNN模型报input_shape未定义NameError错误求助
问题原因
NameError: name 'input_shape' is not defined报错的核心是:你仅在ClassicalModel函数内部定义了名为input_shape的形参,但是在全局作用域调用该函数时,没有提前定义过名为input_shape的实参变量,这和函数形参的命名没有关系。
解决方案
你只需要做两处修改即可正常运行:
- 新增
input_shape变量定义:Keras默认使用channels_last的图像输入格式,RGB彩色图像的输入结构为(图像高度, 图像宽度, 通道数),结合你代码中已定义的图像宽高参数,在调用ClassicalModel前添加如下代码即可:
# 3为RGB彩色图像的通道数,若使用灰度图可修改为1 input_shape = (IM_HEIGHT, IM_WIDTH, 3)
你可以将这行代码放在全局变量定义区,或者直接放在model = ClassicalModel(input_shape)的上一行。
- 修正拼写错误:你在模型编译的参数中把
metrics错写为metris,会触发后续的参数错误,修改为正确拼写即可:
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
内容的提问来源于stack exchange,提问作者JuniorPython
相关产品推荐
相关产品推荐

