AttributeError:“历史记录”对象没有属性“预测”-拟合火车和测试数据列表

i.n*_*n.m 3 python list machine-learning neural-network keras

我正在尝试使用此示例的NN模型。我正在为神经网络模型拟合值列表。但是,我得到一个AttributeError。这已经被问过并且已经得到回答。不幸的是,它对我不起作用。如示例所示,我创建了以下内容,

from keras.models import Sequential
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from keras.layers import Dense

def neuralnetmodel():
    #Crete model
    model = Sequential()
    model.add(Dense(13, input_dim = 13, kernel_initializer = 'normal', activation = 'relu'))

model.add(Dense(1, kernel_initializer = 'normal', activation = 'relu'))
model.add(Dense(1, kernel_initializer = 'normal', activation = 'relu'))
## Output layer
model.add(Dense(1, kernel_initializer = 'normal'))

#Compile model
model.compile(loss = 'mean_squared_error', optimizer = 'adam')
return model
Run Code Online (Sandbox Code Playgroud)

fit 训练数据

NNmodelList = []

for i,j in zip(X_train_scaled,y_train): 
    nn_model = KerasRegressor(build_fn= neuralnetmodel, nb_epoch = 50, batch_size = 10, verbose = 0)
    NNmodelList.append(nn_model.fit(i,j))
Run Code Online (Sandbox Code Playgroud)

predict 根据测试数据

PredList = []
for val in X_test_scaled:
    for mod in NNmodelList: 
    pred = mod.predict(val)
PredList.append(pred)
Run Code Online (Sandbox Code Playgroud)

现在,我得到了错误:

AttributeError:“历史记录”对象没有属性“预测”

在以前的线程,它似乎是动车组是不是fit之前的模型predict。但是,在我的系统中,我将它们放入第二个代码段中。有什么想法我还会犯其他错误吗?

Mac*_*ero 5

model.fit()不返回Keras模型,而是一个History对象,其中包含训练的损失和指标值。所以在这段代码中:

NNmodelList.append(nn_model.fit(i,j))
Run Code Online (Sandbox Code Playgroud)

您正在创建历史记录对象列表,而不是模型。一个简单的解决方法是:

NNmodelList.append(nn_model)
nn_model.fit(i,j)
Run Code Online (Sandbox Code Playgroud)