AttributeError:模块“ keras.backend”没有属性“ image_dim_ordering”

时间:2019-09-05 00:44:02

标签: python tensorflow keras

我试图执行一些教程转移学习项目。 但是我有属性错误。

我检查了我的tensorflow和keras版本。

tensorflow:1.14.0 喀拉斯邦:2.2.5

和python 3.6.9版本。

代码在这里。

.card-header

错误消息在这里。

if(K.image_dim_ordering() == 'th'):
  input_tensor = Input(shape=(3, 299, 299))

5 个答案:

答案 0 :(得分:2)

keras.backend.common模块具有image_dim_ordering()

if(K.common.image_dim_ordering() == 'th'):

    input_tensor = Input(shape=(3, 299, 299))

答案 1 :(得分:1)

谁对我有同样问题的自我解答。 从Keras 2.x将image_dim_ordering更改为image_data_format。 由于将image_dim_ordering更改为image_data_format。

参考链接

答案 2 :(得分:1)

您可以使用以下方法将格式更改为channels_firs:

keras.backend.set_image_data_format('channels_first')
use this to check your format:
 keras.backend.image_data_format()

答案 3 :(得分:1)

image_dim_ordering替换为image_data_format

if(K.image_dim_ordering() == 'th'): 
  input_tensor = Input(shape=(3, 299, 299))

将以上代码更改为

if K.image_data_format() == 'th':
  input_tensor = Input(shape=(3, 299, 299))

Keras Backend utilities

答案 4 :(得分:0)

它指定Keras将遵循的尺寸标注惯例。要确认您的keras在使用什么,请在以下位置检查您的Keras配置文件:

〜/ .keras / keras.json

在文件中,如果内容是

{
    "floatx": "float32",
    "epsilon": 1e-07,
    "backend": "tensorflow",
    "image_data_format": "channels_last"
}

然后更改

if K.image_data_format() == 'channels_last':
    input_tensor = Input(shape=(3, 299, 299))

如果文件内容是

{
    "image_dim_ordering": "tf",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "tensorflow"
}

然后更改

if(K.image_dim_ordering() == 'th'):
  input_tensor = Input(shape=(3, 299, 299))