2
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' ])

使用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
4

2 回答 2

4

有几件事要看。这是一个已知问题,针对 2.2.5 版本进行了报告,但应该适用于 2.2.4 及更早版本。

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

keras.backend.image_data_format()
keras.backend.set_image_data_format(data_format)

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

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

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

K.common.image_dim_ordering()
K.common.set_image_dim_ordering(dim_ordering)
于 2019-09-22T02:59:55.800 回答
1

尝试替换K.set_image_dim_ordering('th')K.image_dim_ordering='th'. 它对我有用。

我不确定,但主要是问题与您使用的 keras 版本有关。

于 2021-09-25T06:11:20.093 回答