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)