keras模型训练报错: AttributeError: 'list' object has no attribute 'set_model'
程序员文章站
2022-03-26 23:19:59
...
错误信息:
AttributeError: ‘list’ object has no attribute ‘set_model’
根据错误提示:错误代码位于如下
model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs,
callbacks=[checkpoint,callbacks],
validation_data=(X_valid, y_valid), verbose=1)
这两个回调函数的定义分别如下:callbacks, checkpoint。
http_client = Server(jsonrpcMlClientPoint)
# 训练可视化,返回val_acc, val_loss, train_acc, train_loss
callbacks = [TrainingMonitor(http_client=http_client, model_id=modelId, model_userid=model_userid,
model_version=model_version, ams_id=ams_id)]
# checkpoint
if not os.path.exists(save_dir):
os.makedirs(save_dir)
namepath = "trained_best_weights.h5"
filepath = os.path.join(save_dir, namepath)
print('current file path is : ', filepath)
checkpoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True,
save_weights_only=False, mode='auto', period=1)
经过排查,去掉第一个callbacks 定义时包裹在外边的中括号就行了。
这是由于之前的代码里只有一个回调函数,所以直接在外边定义了一个list传入。
原因是callbcks的参数本身就是一个list列表。