TF Keras创建happyModel时报'tuple'无lower属性错误如何解决?
错误成因
报错直接由ZeroPadding2D层的参数传值错误触发:
Keras中ZeroPadding2D的data_format参数用于指定输入张量的维度排布规则,合法取值仅为字符串channels_first或channels_last,内部会调用字符串的lower()方法做统一格式校验。你错误地将输入形状元组(64,64,3)传给了data_format参数,程序尝试对元组调用lower()方法时直接抛出属性错误。
可行解决方案
修改happyModel函数中ZeroPadding2D层的参数配置,将输入形状赋值给专门的input_shape参数,data_format如果使用默认的channels_last(对应输入形状为(高度, 宽度, 通道数))可以直接省略:
# 修正后的ZeroPadding2D层写法 tfl.ZeroPadding2D(padding=(3,3), input_shape=(64,64,3)),
如果需要显式声明维度规则,也可以加上合法的data_format取值:
tfl.ZeroPadding2D(padding=(3,3), input_shape=(64,64,3), data_format='channels_last'),
修改后即可正常实例化模型,后续的模型结构校验逻辑也能正常运行。
内容的提问来源于stack exchange,提问作者Md.Rakibuz Sultan
相关产品推荐
相关产品推荐

