Метод set_params класса Callback
Метод set_params класса Callback устанавливает параметры колбэка.
Он вызывается фреймворком Keras автоматически при старте обучения,
но может быть вызван и вручную. Первым параметром метод принимает
словарь params с ключами 'batch_size',
'epochs', 'steps', 'samples', 'verbose',
'do_validation' и другими. Метод сохраняет переданные значения
в атрибутах объекта: self.params, self.model,
self.epochs, self.batch_size и так далее.
Синтаксис
callback.set_params(params)
Пример
Давайте создадим простой колбэк и установим его параметры вручную:
import tensorflow as tf
class MyCallback(tf.keras.callbacks.Callback):
def on_train_begin(self, logs=None):
print("Model:", self.model)
print("Epochs:", self.epochs)
print("Batch size:", self.batch_size)
print("Params keys:", list(self.params.keys()))
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse')
callback = MyCallback()
callback.set_params({
'batch_size': 32,
'epochs': 5,
'verbose': 1,
'steps': 10,
'samples': 320,
'do_validation': False,
'metrics': ['loss']
})
callback.set_model(model)
callback.on_train_begin()
Результат выполнения кода:
Model: <keras.engine.sequential.Sequential object at 0x...>
Epochs: 5
Batch size: 32
Params keys: ['batch_size', 'epochs', 'verbose', 'steps', 'samples', 'do_validation', 'metrics']
Пример
Давайте создадим колбэк, который использует параметры
epochs и batch_size для вывода информации во время обучения:
import tensorflow as tf
tf.random.set_seed(0)
class ParamLogger(tf.keras.callbacks.Callback):
def on_epoch_begin(self, epoch, logs=None):
print(f"Epoch {epoch + 1}/{self.epochs}, batch_size={self.batch_size}")
x = tf.constant([[1.0], [2.0], [3.0], [4.0]])
y = tf.constant([[2.0], [4.0], [6.0], [8.0]])
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse')
logger = ParamLogger()
model.fit(x, y, epochs=3, batch_size=2, callbacks=[logger], verbose=0)
Результат выполнения кода:
Epoch 1/3, batch_size=2
Epoch 2/3, batch_size=2
Epoch 3/3, batch_size=2
Смотрите также
-
класс
Callback,
который является базовым классом для создания колбэков -
метод
set_model,
который устанавливает модель для колбэка -
метод
on_train_begin,
который вызывается в начале обучения -
метод
on_epoch_end,
который вызывается в конце каждой эпохи