我正在编写一个 keras 模型,我想在其中使用一些内置的 keras 回调,但是我可能在某个我无法发现的地方犯了语法错误。给我带来麻烦的代码如下:
from keras.callbacks import EarlyStopping, ModelCheckpoint, TensorBoard
...
...
es = EarlyStopping(monitor='val_loss', min_delta=0.01, verbose=1, patience=5)
tb = TensorBoard(log_dir=logdir, write_graph=True, write_images=True, histogram_freq=0)
mc = ModelCheckpoint(filepath=filepath, save_best_only=True, monitor='val_loss', mode='min')
history = model.fit(X_train, y_train,
batch_size=batch_size,
epochs=n_epochs,
verbose=1,
validation_split=0.3,
callbacks=[es, tb, mc])
但是这样做我得到了错误'tuple' object has no attribute 'set_model'。参考这个另一个问题,问题似乎是由es, tb每个 sé 已经是元组的事实产生的,因此将它们定位到一个列表中(在 call 中callbacks=[es, tb, mc])会引发错误。实际上
print(type(es))
print(type(tb))
print(type(mc))
<class 'tuple'>
<class 'tuple'>
<class 'keras.callbacks.ModelCheckpoint'>
这就是说,我不明白如何解决它。EarlyStopping并TensorBoard返回元组,它们应该如何在 keras 回调列表中调用?
犯罪嫌疑人X
肥皂起泡泡
相关分类