测试时Tensor shape与目标值不匹配,MobileNetV2二分类模型报错
问题排查修复方案
你代码里存在4处配置错误,逐一修正即可通过测试:
- 错误1:
MobileNetV2的input_shape参数传了None,导致模型无法静态推断输出特征图的宽高维度,输出shape的宽高位显示为None,和测试预期的(None, 5, 5, 1280)不匹配,需传入你提前计算好的input_shape变量。 - 错误2:
include_top参数传了None,该参数为布尔值,用于控制是否加载预训练模型顶部的全连接分类层,迁移学习提取特征时需设置为False。 - 错误3:
weights参数传了None,不符合加载ImageNet预训练权重的要求,需设置为'imagenet'。 - 错误4:输出层配置不符合测试规则,测试预期为1个神经元的线性输出,你当前配置为2个神经元加softmax激活,需改为单神经元输出,默认激活即为linear。
修正后的核心代码如下:
### START CODE HERE # 修正base_model初始化参数 base_model = tf.keras.applications.MobileNetV2(input_shape=input_shape, include_top=False, weights='imagenet') # 中间其他代码保持不变 # 修正输出层配置 prediction_layer = tf.keras.layers.Dense(1)(x) ### END CODE HERE
修改后重新运行测试即可通过校验。
内容的提问来源于stack exchange,提问作者Nick X Tsui
相关产品推荐
相关产品推荐

