使用TensorFlow Rescaling层缩放图像数据集时遇TypeError参数错误
错误排查与修复
错误原因
触发的TypeError是因为**Rescaling层的构造函数仅接受2个位置参数**(scale和offset),但你把层名称"rescaling"作为第三个位置参数传递,超出了函数定义的参数数量范围。
修复代码
将Rescaling的调用修改为:
scaled_input = Rescaling(1./255, 0.0, name="rescaling")(input_)
把层名称参数改为关键字参数传递,即可匹配Rescaling类的参数定义要求。
额外优化建议
注意:VGG16预训练模型的官方输入要求是基于ImageNet数据集的均值归一化(而非简单的0-1缩放),若要更好地利用预训练权重,建议替换为VGG16专用的预处理函数:
from keras.applications.vgg16 import preprocess_input # 替换Rescaling层为preprocess_input processed_input = preprocess_input(input_) output_ = vgg16(processed_input)
这样能让输入数据更匹配VGG16预训练时的数据分布,提升模型性能。
内容的提问来源于stack exchange,提问作者Zachary
相关产品推荐
相关产品推荐

