Spec-Zone.ru › TensorFlow 2.9

tf.keras.callbacks.TensorBoard

Просмотреть исходный код на GitHub

Включить визуализацию для 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,
    **kwargs
)

TensorBoard — инструмент визуализации, предоставляемый с TensorFlow.

Этот коллбек записывает события для TensorBoard, включая:

  • Диаграммы сводки метрик
  • Визуализация графика обучения
  • Гистограммы весов
  • Выборка профилирования

При использовании в Model.evaluate, помимо сводок эпох, будет сводка, которая записывает метрики оценки по сравнению с Model.optimizer.iterations. Имена метрик будут иметь префикс evaluation, а Model.optimizer.iterations будет шагом в визуализированном TensorBoard.

Если вы установили TensorFlow с помощью pip, вы можете запустить TensorBoard из командной строки:

tensorboard --logdir=path_to_your_logs

Вы можете найти дополнительную информацию о TensorBoard здесь.

Аргументы
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' или целое число. При использовании 'batch', записи потерь и метрик в TensorBoard после каждого батча. То же самое относится к 'epoch'. Если используется целое число, например, 1000, коллбек будет записывать метрики и потери в TensorBoard каждые 1000 батчей. Обратите внимание, что слишком частая запись в TensorBoard может замедлить обучение.
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
)

© 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/versions/r2.9/api_docs/python/tf/keras/callbacks/TensorBoard

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API