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

Moc*_*i M 3 python conv-neural-network keras max-pooling

model = Sequential()
K.set_image_dim_ordering('th')
model.add(Convolution2D(30, 5, 5, border_mode= 'valid' , input_shape=(1, 10, 10),activation= 'relu' ))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(15, 3, 3, activation= 'relu' ))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(128, activation= 'relu' ))
model.add(Dense(50, activation= 'relu' ))
model.add(Dense(10, activation= 'softmax' ))
# Compile model
model.compile(loss= 'categorical_crossentropy' , optimizer= 'adam' , metrics=[ 'accuracy' ])
Run Code Online (Sandbox Code Playgroud)

set_image_dim_ordering()当我使用from时出现错误keras.backend

这是错误报告:AttributeError: module 'keras.backend' has no attribute 'set_image_dim_ordering'

我的进口声明

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import Convolution2D
from keras.layers.convolutional import MaxPooling2D
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
from keras import backend as K
from subprocess import check_output
Run Code Online (Sandbox Code Playgroud)

MyN*_*leb 5

有几点需要注意。这是一个已知问题,已在 2.2.5 版本中报告,但应该适用于 2.2.4 及之前的版本。

但是,无论如何,您都应该停止使用此方法,因为它现在已成为旧方法,并已被image_data_format取代:[代码]

keras.backend.image_data_format()
keras.backend.set_image_data_format(data_format)
Run Code Online (Sandbox Code Playgroud)

它应该继续工作,但至少现在有一个错误。

编辑: 下面报告的海报不起作用或返回其代码错误,尽管该方法似乎确实存在。

有些人报告说您可能可以使用以下方法访问该方法K.common,但我尚未测试:

K.common.image_dim_ordering()
K.common.set_image_dim_ordering(dim_ordering)
Run Code Online (Sandbox Code Playgroud)