AttributeError: set_model Error (Keras callbacks)
AttributeError: set_model Error (Keras callbacks)
我正在使用 Keras 拟合模型并将回调列表传递给模型拟合,但遇到以下错误。我在这里做错了什么?
from tensorflow.keras.callbacks import ReduceLROnPlateau,
ModelCheckpoint, EarlyStopping, Callback
checkpoint = ModelCheckpoint(f'model{i}.h5', save_best_only=True,
save_weights_only = True,
monitor='val_loss',
verbose = 1)
lr_reducer = ReduceLROnPlateau(monitor="val_loss",
patience=3,
min_lr=1e-6)
my_callbacks = [checkpoint, lr_reducer]
history = model.fit(
train_generator,
validation_data = valid_generator,
epochs=10,
verbose=1,
callbacks= my_callbacks)
错误如下:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-135-0538428c86d8> in <module>
75 epochs=10,
76 verbose=1,
---> 77 callbacks= my_callbacks)
78
79
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)
1073 verbose=verbose,
1074 epochs=epochs,
-> 1075 steps=data_handler.inferred_steps)
1076
1077 self.stop_training = False
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/callbacks.py in __init__(self, callbacks, add_history, add_progbar, model, **params)
229
230 if model:
--> 231 self.set_model(model)
232 if params:
233 self.set_params(params)
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/callbacks.py in set_model(self, model)
284 model.history = self._history
285 for callback in self.callbacks:
--> 286 callback.set_model(model)
287
288 def _call_batch_hook(self, mode, hook, batch, logs=None):
/opt/conda/lib/python3.7/site-packages/fastcore/basics.py in __getattr__(self, k)
387 attr = getattr(self,self._default,None)
388 if attr is not None: return getattr(attr,k)
--> 389 raise AttributeError(k)
390 def __dir__(self): return custom_dir(self,self._dir())
391 # def __getstate__(self): return self.__dict__
AttributeError: set_model
它只说 'AttributeError: set_model',我不明白是什么导致了错误。
有时如果你在列表中写入它接受的所有必需的回调,但有时你应该将它分配给另一个变量然后像这样写。
历史 = model.fit(
train_generator,
validation_data = valid_generator,
时代= 10,
冗长=1,
回调= [my_callbacks])
希望您的 model.fit() 能正常工作。
我正在使用 Keras 拟合模型并将回调列表传递给模型拟合,但遇到以下错误。我在这里做错了什么?
from tensorflow.keras.callbacks import ReduceLROnPlateau,
ModelCheckpoint, EarlyStopping, Callback
checkpoint = ModelCheckpoint(f'model{i}.h5', save_best_only=True,
save_weights_only = True,
monitor='val_loss',
verbose = 1)
lr_reducer = ReduceLROnPlateau(monitor="val_loss",
patience=3,
min_lr=1e-6)
my_callbacks = [checkpoint, lr_reducer]
history = model.fit(
train_generator,
validation_data = valid_generator,
epochs=10,
verbose=1,
callbacks= my_callbacks)
错误如下:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-135-0538428c86d8> in <module>
75 epochs=10,
76 verbose=1,
---> 77 callbacks= my_callbacks)
78
79
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)
1073 verbose=verbose,
1074 epochs=epochs,
-> 1075 steps=data_handler.inferred_steps)
1076
1077 self.stop_training = False
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/callbacks.py in __init__(self, callbacks, add_history, add_progbar, model, **params)
229
230 if model:
--> 231 self.set_model(model)
232 if params:
233 self.set_params(params)
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/callbacks.py in set_model(self, model)
284 model.history = self._history
285 for callback in self.callbacks:
--> 286 callback.set_model(model)
287
288 def _call_batch_hook(self, mode, hook, batch, logs=None):
/opt/conda/lib/python3.7/site-packages/fastcore/basics.py in __getattr__(self, k)
387 attr = getattr(self,self._default,None)
388 if attr is not None: return getattr(attr,k)
--> 389 raise AttributeError(k)
390 def __dir__(self): return custom_dir(self,self._dir())
391 # def __getstate__(self): return self.__dict__
AttributeError: set_model
它只说 'AttributeError: set_model',我不明白是什么导致了错误。
有时如果你在列表中写入它接受的所有必需的回调,但有时你应该将它分配给另一个变量然后像这样写。 历史 = model.fit( train_generator, validation_data = valid_generator, 时代= 10, 冗长=1, 回调= [my_callbacks]) 希望您的 model.fit() 能正常工作。