tf.keras.callbacks.TensorBoard
Включить визуализацию для TensorBoard.
Наследуется от: Callback
tf.keras.callbacks.TensorBoard(
log_dir='logs',
histogram_freq=0,
write_graph=True,
write_images=False,
write_steps_per_second=False,
update_freq='epoch',
profile_batch=0,
embeddings_freq=0,
embeddings_metadata=None
)
Используется в ноутбуках
| Используется в руководстве | Используется в учебниках |
|---|---|
TensorBoard — инструмент визуализации, поставляемый с TensorFlow. Для использования этого колбека требуется установка TensorFlow.
Этот колбек регистрирует события для TensorBoard, включая:
- Графики сводных метрик
- Визуализация графика обучения
- Гистограммы весов
- Выборка профилирования
При использовании в model.evaluate() или обычной валидации в дополнение к эпохальным сводкам, будет записана сводка, которая записывает метрики оценки по сравнению с model.optimizer.iterations. Имена метрик будут предваряться evaluation, с model.optimizer.iterations, представляющим шаг в визуализированном TensorBoard.
Если вы установили TensorFlow с помощью pip, вы должны иметь возможность запустить TensorBoard из командной строки:
tensorboard --logdir=path_to_your_logs
Дополнительную информацию о TensorBoard можно найти здесь.
| Args | |
|---|---|
log_dir | путь к каталогу, в котором нужно сохранить файлы логов для анализа TensorBoard. Например, log_dir = os.path.join(working_dir, 'logs'). Этот каталог не должен повторно использоваться другими колбеками. |
histogram_freq | частота (в эпохах) вычисления гистограмм весов для слоёв модели. Если установлено в 0, гистограммы не будут вычисляться. Для визуализации гистограмм необходимо указать данные валидации (или разбиение). |
write_graph | (Не поддерживается в настоящее время) Визуализировать ли граф в TensorBoard. Обратите внимание, что файл логов может стать достаточно большим, когда write_graph установлено в True. |
write_images | нужно ли записывать веса модели для визуализации в виде изображения в TensorBoard. |
write_steps_per_second | нужно ли регистрировать шаги обучения в секунду в TensorBoard. Это поддерживает запись как по эпохам, так и по партиям. |
update_freq | "batch" или "epoch" или целое число. При использовании "epoch", потери и метрики записываются в TensorBoard после каждой эпохи. Если используется целое число, например, 1000, все метрики и потери (включая настраиваемые, добавленные с помощью Model.compile) будут регистрироваться в TensorBoard каждые 1000 партий. "batch" — синоним для 1, что означает запись после каждой партии. Однако следует учесть, что слишком частая запись в TensorBoard может замедлить обучение, особенно при использовании стратегий распределения, так как это повлечёт дополнительные накладные расходы на синхронизацию. Запись сводок на уровне партий также доступна через train_step переопределения. Подробнее см. учебник TensorBoard Scalars # noqa: E501. |
profile_batch | (Не поддерживается в настоящее время) Профилировать пакет(ы) для выборки характеристик вычислений. profile_batch должно быть неотрицательным целым числом или кортежем целых чисел. Пара положительных целых чисел обозначает диапазон партий для профилирования. По умолчанию профилирование отключено. |
embeddings_freq | частота (в эпохах) визуализации слоёв встраивания. Если установлено в 0, слои встраивания не будут визуализироваться. |
embeddings_metadata | Словарь, который сопоставляет имена слоёв встраивания с именем файла, в который нужно сохранить метаданные для слоя встраивания. В случае, если для всех слоёв встраивания нужно использовать один и тот же файл метаданных, можно указать единственное имя файла. |
Примеры:
tensorboard_callback = keras.callbacks.TensorBoard(log_dir="./logs") model.fit(x_train, y_train, epochs=2, callbacks=[tensorboard_callback]) # Then run the tensorboard command to view the visualizations.
Пользовательские сводки на уровне партий в подклассированной модели:
class MyModel(keras.Model):
def build(self, _):
self.dense = keras.layers.Dense(10)
def call(self, x):
outputs = self.dense(x)
tf.summary.histogram('outputs', outputs)
return outputs
model = MyModel()
model.compile('sgd', 'mse')
# Make sure to set `update_freq=N` to log a batch-level summary every N
# batches. In addition to any `tf.summary` contained in `model.call()`,
# metrics added in `Model.compile` will be logged every N batches.
tb_callback = keras.callbacks.TensorBoard('./logs', update_freq=1)
model.fit(x_train, y_train, callbacks=[tb_callback])
Пользовательские сводки на уровне партий в модели API функционального типа:
def my_summary(x):
tf.summary.histogram('x', x)
return x
inputs = keras.Input(10)
x = keras.layers.Dense(10)(inputs)
outputs = keras.layers.Lambda(my_summary)(x)
model = keras.Model(inputs, outputs)
model.compile('sgd', 'mse')
# Make sure to set `update_freq=N` to log a batch-level summary every N
# batches. In addition to any `tf.summary` contained in `Model.call`,
# metrics added in `Model.compile` will be logged every N batches.
tb_callback = keras.callbacks.TensorBoard('./logs', update_freq=1)
model.fit(x_train, y_train, callbacks=[tb_callback])
Профилирование:
# Profile a single batch, e.g. the 5th batch.
tensorboard_callback = keras.callbacks.TensorBoard(
log_dir='./logs', profile_batch=5)
model.fit(x_train, y_train, epochs=2, callbacks=[tensorboard_callback])
# Profile a range of batches, e.g. from 10 to 20.
tensorboard_callback = keras.callbacks.TensorBoard(
log_dir='./logs', profile_batch=(10,20))
model.fit(x_train, y_train, epochs=2, callbacks=[tensorboard_callback])
| Атрибуты | |
|---|---|
model | |
summary | |
Методы
on_batch_begin
on_batch_begin(
batch, logs=None
)
Псевдоним обратной совместимости для on_train_batch_begin.
on_batch_end
on_batch_end(
batch, logs=None
)
Псевдоним обратной совместимости для on_train_batch_end.
on_epoch_begin
on_epoch_begin(
epoch, logs=None
)
Вызывается в начале эпохи.
Подклассы должны переопределять для любых действий. Эта функция должна вызываться только в режиме TRAIN.
| Args | |
|---|---|
epoch | Целое число, индекс эпохи. |
logs | Словарь. В настоящее время для этого метода данные не передаются, но это может измениться в будущем. |
on_epoch_end
on_epoch_end(
epoch, logs=None
)
Выполняет метрики и сводки гистограмм в конце эпохи.
on_predict_batch_begin
on_predict_batch_begin(
batch, logs=None
)
Вызывается в начале партии в predict методах.
Подклассы должны переопределять для любых действий.
Обратите внимание, что если аргумент steps_per_execution к compile в Model установлен в N, этот метод будет вызываться только каждые N партии.
| Args | |
|---|---|
batch | Целое число, индекс партии в текущей эпохе. |
logs | Словарь. В настоящее время для этого метода данные не передаются, но это может измениться в будущем. |
on_predict_batch_end
on_predict_batch_end(
batch, logs=None
)
Вызывается в конце партии в predict методах.
Подклассы должны переопределять для любых действий.
Обратите внимание, что если аргумент steps_per_execution к compile в Model установлен в N, этот метод будет вызываться только каждые N партии.
| Args | |
|---|---|
batch | Целое число, индекс партии в текущей эпохе. |
logs | Словарь. Суммарные результаты метрик до этой партии. |
on_predict_begin
on_predict_begin(
logs=None
)
Вызывается в начале предсказания.
Подклассы должны переопределять для выполнения любых действий.
| Аргументы | |
|---|---|
logs | Словарь. В данный момент для этого метода данные не передаются, но в будущем это может измениться. |
on_predict_end
on_predict_end(
logs=None
)
Вызывается в конце предсказания.
Подклассы должны переопределять для выполнения любых действий.
| Аргументы | |
|---|---|
logs | Словарь. В данный момент для этого метода данные не передаются, но в будущем это может измениться. |
on_test_batch_begin
on_test_batch_begin(
batch, logs=None
)
Вызывается в начале пакета в методах evaluate.
Также вызывается в начале пакета валидации в методах fit, если предоставлены данные валидации.
Подклассы должны переопределять для выполнения любых действий.
Обратите внимание, что если аргумент steps_per_execution к методу compile в Model установлен в N, этот метод будет вызываться только каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число, индекс пакета в текущей эпохе. |
logs | Словарь. В данный момент для этого метода данные не передаются, но в будущем это может измениться. |
on_test_batch_end
on_test_batch_end(
batch, logs=None
)
Вызывается в конце пакета в методах evaluate.
Также вызывается в конце пакета валидации в методах fit, если предоставлены данные валидации.
Подклассы должны переопределять для выполнения любых действий.
Обратите внимание, что если аргумент steps_per_execution к методу compile в Model установлен в N, этот метод будет вызываться только каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число, индекс пакета в текущей эпохе. |
logs | Словарь. Агрегированные результаты метрик до этого пакета. |
on_test_begin
on_test_begin(
logs=None
)
Вызывается в начале оценки или валидации.
Подклассы должны переопределять для выполнения любых действий.
| Аргументы | |
|---|---|
logs | Словарь. В данный момент для этого метода данные не передаются, но в будущем это может измениться. |
on_test_end
on_test_end(
logs=None
)
Вызывается в конце оценки или валидации.
Подклассы должны переопределять для выполнения любых действий.
| Аргументы | |
|---|---|
logs | Словарь. В данный момент для этого метода передается результат последнего вызова on_test_batch_end(), но в будущем это может измениться. |
on_train_batch_begin
on_train_batch_begin(
batch, logs=None
)
Вызывается в начале пакета обучения в методах fit.
Подклассы должны переопределять для выполнения любых действий.
Обратите внимание, что если аргумент steps_per_execution к методу compile в Model установлен в N, этот метод будет вызываться только каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число, индекс пакета в текущей эпохе. |
logs | Словарь. В данный момент для этого метода данные не передаются, но в будущем это может измениться. |
on_train_batch_end
on_train_batch_end(
batch, logs=None
)
Вызывается в конце пакета обучения в методах fit.
Подклассы должны переопределять для выполнения любых действий.
Обратите внимание, что если аргумент steps_per_execution к методу compile в Model установлен в N, этот метод будет вызываться только каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число, индекс пакета в текущей эпохе. |
logs | Словарь. Агрегированные результаты метрик до этого пакета. |
on_train_begin
on_train_begin(
logs=None
)
Вызывается в начале обучения.
Подклассы должны переопределять для выполнения любых действий.
| Аргументы | |
|---|---|
logs | Словарь. В данный момент для этого метода данные не передаются, но в будущем это может измениться. |
on_train_end
on_train_end(
logs=None
)
Вызывается в конце обучения.
Подклассы должны переопределять для выполнения любых действий.
| Аргументы | |
|---|---|
logs | Словарь. В данный момент для этого метода передается результат последнего вызова on_epoch_end(), но в будущем это может измениться. |
set_model
set_model(
model
)
Устанавливает модель Keras и записывает график, если указано.
set_params
set_params(
params
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/TensorBoard