首页 > 编程笔记 > Python笔记 阅读:2

TensorBoard是什么,怎么用?(新手必看)

TensorBoard 是 TensorFlow 的一个附加工具,可以记录训练过程的数字、图像等内容,以方便研究人员观察神经网络训练过程。

TensorBoard 既是一个强大的可视化工具,也是一个 Web 应用程序套件。

对于 PyTorch 等神经网络训练框架来说,目前还没有像 TensorBoard 一样功能全面的工具,一些已有的工具功能有限或使用起来比较困难。

TensorBoard 提供了机器学习实验所需的可视化功能和工具:
TensorBoard 和 TensorFLow 程序运行在不同的进程中,TensorBoard 会自动读取最新的 TensorFlow 日志文件,并呈现当前 TensorFLow 程序运行的最新状态。

如果要使用 TensorBoard,首先需要安装 tensorflow、tensorboard、tensorboardX 等相关第三方库,代码如下:
pip install tensorflow
pip install tensorboard
pip install tensorboardX
其中,TensorBoardX 可使 TensorFlow 外的其他神经网络框架也可以使用 TensorBoard 的便捷功能。

TensorBoard 目前支持 7 种可视化,包括 Scalars、Images、Audio、Graphs、Distributions、Histograms 和 Embeddings。其中可视化的主要功能如下:
下面使用 TensorBoard 创建可视化实例。需要创建一个 SummaryWriter 的实例,SummaryWriter 类用于将模型的指标、损失、图像等数据记录到 TensorBoard 中,以便进行可视化和分析。通过使用 SummaryWriter,可以方便地在训练过程中监控模型的性能,并对不同的超参数和模型结构进行比较和评估。

在实际应用中,可以创建 SummaryWriter 对象,并使用其方法来记录各种数据,例如 add_scalar、add_graph、add_image 等。然后,通过运行 TensorBoard 服务器来查看和可视化这些记录的数据。这样可以帮助开发者更好地理解和优化模型的训练过程。

SummaryWriter 类参数如下:
torch.utils.tensorboard.writer.SummaryWriter(
    log_dir=None,
    comment='',
    purge_step=None,
    max_queue=10,
    flush_secs=120,
    filename_suffix='')

导入 SummaryWriter 类,代码如下:
# 从 tensorboardX 模块导入SummaryWriter类
from tensorboardX import SummaryWriter

以下是三种初始化 SummaryWriter 的方法:
1) 提供一个路径,例如 ./runs/test1,将使用该路径来保存日志,代码如下:
writer1 = SummaryWriter('./runs/test1')

2) 无参数,默认将使用“runs/日期时间”路径来保存日志,代码如下:
writer2 = SummaryWriter()

3) 提供一个 comment 参数,将使用“./runs/日期时间-comment”路径来保存日志,代码如下:
writer3 = SummaryWriter(comment='test2')

运行上述代码后,将会在 run 文件夹下生成 3 个文件,如下图所示:


一般每次实验都需要新建一个路径不同的 SummaryWriter,也叫一个 run。接下来,我们就可以调用 SummaryWriter 实例的各种 add_something 方法向日志中写入不同类型的数据了。

启动 TensorBoard,TensorBoard 通过运行一个本地服务器来监听 6006 端口,代码如下:
tensorboard --logdir=D:/runs/
然后在浏览器发出请求时分析训练中记录的数据,绘制训练过程中的图像。

相关文章