tf.keras.callbacks.TensorBoard
| Просмотреть исходный код на GitHub |
Включает визуализации для TensorBoard.
Наследуется от: Callback
tf.keras.callbacks.TensorBoard(
log_dir='logs', histogram_freq=0, write_graph=True,
write_images=False, update_freq='epoch', profile_batch=2,
embeddings_freq=0, embeddings_metadata=None, **kwargs
)
TensorBoard — инструмент визуализации, предоставляемый с TensorFlow.
Этот коллбек записывает события для TensorBoard, включая:
- Графики сводки метрик
- Визуализация графа обучения
- Гистограммы активаций
- Выборка профилирования
Если вы установили TensorFlow с помощью pip, вы должны иметь возможность запустить TensorBoard из командной строки:
tensorboard --logdir=path_to_your_logs
Дополнительную информацию о TensorBoard можно найти здесь.
| Аргументы | |
|---|---|
log_dir | путь к каталогу, в котором будут сохранены лог-файлы для обработки TensorBoard. |
histogram_freq | частота (в эпохах) вычисления гистограмм активаций и весов для слоёв модели. Если установлено значение 0, гистограммы не будут вычисляться. Для визуализации гистограмм необходимо указать данные валидации (или разбиение). |
write_graph | нужно ли визуализировать граф в TensorBoard. Лог-файл может стать довольно большим, если write_graph установлено в True. |
write_images | нужно ли записывать веса модели для визуализации в виде изображения в TensorBoard. |
update_freq | 'batch' или 'epoch' или целое число. При использовании 'batch', потери и метрики записываются в TensorBoard после каждой итерации. То же самое относится к 'epoch'. Если используется целое число, например 1000, коллбек будет записывать метрики и потери в TensorBoard каждые 1000 итераций. Обратите внимание, что слишком частая запись в TensorBoard может замедлить обучение. |
profile_batch | Профилировать итерацию(и) для выборки характеристик вычислений. profile_batch должно быть целым неотрицательным числом или кортежем целых чисел. Пара положительных целых чисел обозначает диапазон итераций для профилирования. По умолчанию, это будет вторая итерация. Установите profile_batch=0, чтобы отключить профилирование. |
embeddings_freq | частота (в эпохах) визуализации слоёв встраивания. Если установлено значение 0, слои встраивания не будут визуализироваться. |
embeddings_metadata | словарь, который сопоставляет имя слоя с именем файла, в котором сохраняется метаданные для этого слоя встраивания. Смотрите подробности о формате файлов метаданных. В случае, если один и тот же файл метаданных используется для всех слоёв встраивания, можно передать строку. |
Примеры:
Базовое использование:
tensorboard_callback = tf.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(tf.keras.Model):
def build(self, _):
self.dense = tf.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 = tf.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 = tf.keras.Input(10)
x = tf.keras.layers.Dense(10)(inputs)
outputs = tf.keras.layers.Lambda(my_summary)(x)
model = tf.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 = tf.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 = tf.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 = tf.keras.callbacks.TensorBoard(
log_dir='./logs', profile_batch=(10,20))
model.fit(x_train, y_train, epochs=2, callbacks=[tensorboard_callback])
Методы
set_model
set_model(
model
)
Устанавливает Keras модель и записывает граф, если это указано.
set_params
set_params(
params
)
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/callbacks/TensorBoard