TensorBoard
類別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 的視覺化功能。
TensorBoard 是 TensorFlow 提供的視覺化工具。使用此回呼需要安裝 TensorFlow。
此回呼會記錄 TensorBoard 的事件,包括:
在 model.evaluate()
或常規驗證中使用時,除了 epoch 摘要外,還會有一個摘要記錄評估指標與 model.optimizer.iterations
的關係。指標名稱將以 evaluation
為前綴,model.optimizer.iterations
是視覺化 TensorBoard 中的步數。
如果您已使用 pip 安裝 TensorFlow,則應該可以從命令列啟動 TensorBoard
tensorboard --logdir=path_to_your_logs
您可以在此處找到更多關於 TensorBoard 的資訊。
參數
log_dir = os.path.join(working_dir, 'logs')
。此目錄不應被任何其他回呼重複使用。write_graph
設定為 True
時,日誌檔案可能會變得相當大。"batch"
或 "epoch"
或整數。當使用 "epoch"
時,會在每個 epoch 後將損失和指標寫入 TensorBoard。如果使用整數,假設為 1000
,則所有指標和損失(包括 Model.compile
添加的自訂指標)將每 1000 個批次記錄到 TensorBoard。"batch"
是 1 的同義詞,表示它們將在每個批次寫入。但是請注意,過於頻繁地寫入 TensorBoard 會減慢您的訓練速度,尤其是在與分佈策略一起使用時,因為這會產生額外的同步開銷。批次級摘要寫入也可以透過 train_step
覆寫來實現。有關更多詳細資訊,請參閱 TensorBoard 純量教學。範例
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`](https://tensorflow.dev.org.tw/api_docs/python/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`](https://tensorflow.dev.org.tw/api_docs/python/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])