Tensorflow2.0入门教程20:Tensorboard可视化

使用keras回调函数

tf.keras.callbacks.TensorBoard

参数说明:

  • log_dir:保存TensorBoard要解析的日志文件的目录的路径。

  • histogram_freq:频率(在epoch中),计算模型层的激活和权重直方图。如果设置为0,则不会计算直方图。必须为直方图可视化指定验证数据(或拆分)。

  • write_graph:是否在TensorBoard中可视化图像。当write_graph设置为True时,日志文件可能会变得非常大。

  • write_images:是否在TensorBoard中编写模型权重以显示为图像。

  • update_freq:‘batch’或’epoch’或整数。使用’batch’时,在每个batch后将损失和指标写入TensorBoard。这同样适用’epoch’。如果使用整数,比方说1000,回调将会在每1000个样本后将指标和损失写入TensorBoard。请注意,过于频繁地写入TensorBoard会降低您的训练速度。

  • profile_batch:对批处理进行概要分析以采样计算特征。通过 默认情况下,它将配置第二批。将profile_batch = 0设置为 禁用分析。必须在TensorFlow急切模式下运行。

  • embeddings_freq:嵌入层的频率(以时间为单位) 被可视化。如果设置为0,则嵌入将不可见。

  • embeddings_metadata:将层名称映射到文件名的字典 保存该嵌入层的哪些元数据。

import tensorflow as tf
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()

train_labels = train_labels
test_labels = test_labels

train_images = train_images.reshape(-1, 28 * 28) / 255.0
test_images = test_images.reshape(-1, 28 * 28) / 255.0
# 定义一个简单的序列模型
def create_model():
    model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
  ])

    model.compile(optimizer='adam',
                loss='sparse_categorical_crossentropy',
                metrics=['accuracy'])

    return model
TensorBoardcallback = tf.keras.callbacks.TensorBoard(
    log_dir='logs',
    histogram_freq=1, profile_batch=2,
    write_graph=True,write_images=True,
    embeddings_freq=0, embeddings_layer_names=None,
    embeddings_metadata=None, embeddings_data=None, update_freq=500
)
# help(tf.keras.callbacks.TensorBoard)
model = create_model()
model.fit(train_images,train_labels,epochs=10,validation_data=(test_images,test_labels),callbacks = [TensorBoardcallback],verbose=2)
Train on 60000 samples, validate on 10000 samples
Epoch 1/10
60000/60000 - 4s - loss: 0.3012 - accuracy: 0.9126 - val_loss: 0.1484 - val_accuracy: 0.9550
Epoch 2/10
60000/60000 - 4s - loss: 0.1446 - accuracy: 0.9571 - val_loss: 0.1008 - val_accuracy: 0.9693
Epoch 3/10
60000/60000 - 4s - loss: 0.1075 - accuracy: 0.9672 - val_loss: 0.0846 - val_accuracy: 0.9741
Epoch 4/10
60000/60000 - 4s - loss: 0.0890 - accuracy: 0.9724 - val_loss: 0.0802 - val_accuracy: 0.9751
Epoch 5/10
60000/60000 - 4s - loss: 0.0759 - accuracy: 0.9759 - val_loss: 0.0737 - val_accuracy: 0.9784
Epoch 6/10
60000/60000 - 4s - loss: 0.0644 - accuracy: 0.9798 - val_loss: 0.0702 - val_accuracy: 0.9776
Epoch 7/10
60000/60000 - 4s - loss: 0.0598 - accuracy: 0.9807 - val_loss: 0.0686 - val_accuracy: 0.9782
Epoch 8/10
60000/60000 - 4s - loss: 0.0533 - accuracy: 0.9821 - val_loss: 0.0655 - val_accuracy: 0.9782
Epoch 9/10
60000/60000 - 4s - loss: 0.0483 - accuracy: 0.9840 - val_loss: 0.0635 - val_accuracy: 0.9811
Epoch 10/10
60000/60000 - 4s - loss: 0.0442 - accuracy: 0.9854 - val_loss: 0.0766 - val_accuracy: 0.9771
<tensorflow.python.keras.callbacks.History at 0x223c9472588>

启动tebsorboard

命令行输入:

tensorboard --logdir=/full_path_to_your_logs
# full_path_to_your_logs为保存的日志路径

可能报错:
在这里插入图片描述

1.更新 wrapt

pip install --ignore-installed wrapt

2.更新 setuptools

pip install --ignore-installed setuptools

windows:遇到权限错误:

pip install --user --ignore-installed wrapt

pip install --user --ignore-installed setuptools

在这里插入图片描述

可能报错

在这里插入图片描述

pip install --upgrade grpcio

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值