Keras2.3.1调用set_image_dim_ordering出现AttributeError怎么解决
报错根因
该报错和是否混用TensorFlow与Keras无关,是Keras版本迭代导致的API变更问题:set_image_dim_ordering接口从Keras 2.2.0版本开始就已被正式弃用,你使用的2.3.1版本已经完全移除了该旧接口,因此调用时会触发属性不存在的报错。
修复方案
直接替换报错行的代码即可,共有两种可用写法:
- 写法1(通用兼容所有Keras后端,推荐):
将原报错行K.tensorflow_backend.set_image_dim_ordering('th')替换为:
K.set_image_data_format('channels_first')
原来的'th'参数对应新接口的'channels_first'参数,代表使用通道在前的图片维度排列规则,和原代码的逻辑完全一致。
- 写法2(仅适用TensorFlow后端):
如果确认后端固定使用TensorFlow,也可以调用子模块对应方法:
K.tensorflow_backend._set_image_data_format('channels_first')
验证方式
设置完成后可以执行如下代码验证配置是否生效:
print(K.image_data_format())
返回channels_first即代表配置成功。
内容的提问来源于stack exchange,提问作者Morgenstern
相关产品推荐
相关产品推荐

