阅读(10.3k) 书签 (0)

TensorFlow回调函数:tf.keras.callbacks.TensorBoard

2019-03-27 15:19 更新

tf.keras.callbacks.TensorBoard函数

类 TensorBoard

继承自:Callback

定义在:tensorflow/python/keras/callbacks.py。

Tensorboard基本可视化。

TensorBoard是由Tensorflow提供的一个可视化工具。

此回调为TensorBoard编写日志,该日志允许您可视化训练和测试度量的动态图形,也可以可视化模型中不同层的激活直方图。

如果您已经使用pip安装了TensorFlow,那么您应该能够从命令行启动TensorBoard:

tensorboard --logdir=/full_path_to_your_logs

参数:

  • log_dir:保存TensorBoard要解析的日志文件的目录的路径。
  • histogram_freq:频率(在epoch中),计算模型层的激活和权重直方图。如果设置为0,则不会计算直方图。必须为直方图可视化指定验证数据(或拆分)。
  • write_graph:是否在TensorBoard中可视化图像。当write_graph设置为True时,日志文件可能会变得非常大。
  • write_grads:是否在TensorBoard中可视化渐变直方图。 histogram_freq必须大于0。
  • batch_size:用以直方图计算的传入神经元网络输入批的大小。
  • write_images:是否在TensorBoard中编写模型权重以显示为图像。
  • embeddings_freq:将保存所选嵌入层的频率(在epoch中)。如果设置为0,则不会计算嵌入。要在TensorBoard的嵌入选项卡中显示的数据必须作为embeddings_data传递。
  • embeddings_layer_names:要关注的层名称列表。如果为None或空列表,则将监测所有嵌入层。
  • embeddings_metadata:将层名称映射到文件名的字典,其中保存了此嵌入层的元数据。如果相同的元数据文件用于所有嵌入层,则可以传递字符串。
  • embeddings_data:要嵌入在embeddings_layer_names指定的层的数据。Numpy数组(如果模型有单个输入)或Numpy数组列表(如果模型有多个输入)。
  • update_freq:'batch'或'epoch'或整数。使用'batch'时,在每个batch后将损失和指标写入TensorBoard。这同样适用'epoch'。如果使用整数,比方说1000,回调将会在每1000个样本后将指标和损失写入TensorBoard。请注意,过于频繁地写入TensorBoard会降低您的训练速度。

可能引发的异常:

  • ValueError:如果设置了histogram_freq且未提供验证数据。

Eager兼容性

使用Tensorboard回调将在启用eager执行时起作用,但不支持输出权重和渐变的直方图摘要,因此histogram_freq将被忽略。

__init__
__init__(
    log_dir='./logs',
    histogram_freq=0,
    batch_size=32,
    write_graph=True,
    write_grads=False,
    write_images=False,
    embeddings_freq=0,
    embeddings_layer_names=None,
    embeddings_metadata=None,
    embeddings_data=None,
    update_freq='epoch'
)

初始化自我。

方法

on_batch_begin
on_batch_begin(
    batch,
    logs=None
)
on_batch_end
on_batch_end(
    batch,
    logs=None
)

为每个训练批次写入指标的标量摘要。

on_epoch_begin
on_epoch_begin(
    epoch,
    logs=None
)

将直方图操作添加到Model eval_function回调中,重置批次计数。

on_epoch_end
on_epoch_end(
    epoch,
    logs=None
)

检查摘要操作是否应该运行下一个epoch,记录标量摘要。

on_train_batch_begin
on_train_batch_begin(
    batch,
    logs=None
)
on_train_batch_end
on_train_batch_end(
    batch,
    logs=None
)
on_train_begin
on_train_begin(logs=None)
on_train_end
on_train_end(logs=None)
set_model
set_model(model)

设置Keras模型并创建摘要操作。

set_params
set_params(params)