TensorBoard是什么,怎么用?(新手必看)
TensorBoard 是 TensorFlow 的一个附加工具,可以记录训练过程的数字、图像等内容,以方便研究人员观察神经网络训练过程。
TensorBoard 既是一个强大的可视化工具,也是一个 Web 应用程序套件。
对于 PyTorch 等神经网络训练框架来说,目前还没有像 TensorBoard 一样功能全面的工具,一些已有的工具功能有限或使用起来比较困难。
TensorBoard 提供了机器学习实验所需的可视化功能和工具:
TensorBoard 和 TensorFLow 程序运行在不同的进程中,TensorBoard 会自动读取最新的 TensorFlow 日志文件,并呈现当前 TensorFLow 程序运行的最新状态。
如果要使用 TensorBoard,首先需要安装 tensorflow、tensorboard、tensorboardX 等相关第三方库,代码如下:
TensorBoard 目前支持 7 种可视化,包括 Scalars、Images、Audio、Graphs、Distributions、Histograms 和 Embeddings。其中可视化的主要功能如下:
下面使用 TensorBoard 创建可视化实例。需要创建一个 SummaryWriter 的实例,SummaryWriter 类用于将模型的指标、损失、图像等数据记录到 TensorBoard 中,以便进行可视化和分析。通过使用 SummaryWriter,可以方便地在训练过程中监控模型的性能,并对不同的超参数和模型结构进行比较和评估。
在实际应用中,可以创建 SummaryWriter 对象,并使用其方法来记录各种数据,例如 add_scalar、add_graph、add_image 等。然后,通过运行 TensorBoard 服务器来查看和可视化这些记录的数据。这样可以帮助开发者更好地理解和优化模型的训练过程。
SummaryWriter 类参数如下:
导入 SummaryWriter 类,代码如下:
以下是三种初始化 SummaryWriter 的方法:
1) 提供一个路径,例如 ./runs/test1,将使用该路径来保存日志,代码如下:
2) 无参数,默认将使用“runs/日期时间”路径来保存日志,代码如下:
3) 提供一个 comment 参数,将使用“./runs/日期时间-comment”路径来保存日志,代码如下:
运行上述代码后,将会在 run 文件夹下生成 3 个文件,如下图所示:
一般每次实验都需要新建一个路径不同的 SummaryWriter,也叫一个 run。接下来,我们就可以调用 SummaryWriter 实例的各种 add_something 方法向日志中写入不同类型的数据了。
启动 TensorBoard,TensorBoard 通过运行一个本地服务器来监听 6006 端口,代码如下:
TensorBoard 既是一个强大的可视化工具,也是一个 Web 应用程序套件。
对于 PyTorch 等神经网络训练框架来说,目前还没有像 TensorBoard 一样功能全面的工具,一些已有的工具功能有限或使用起来比较困难。
TensorBoard 提供了机器学习实验所需的可视化功能和工具:
- 跟踪和可视化损失及准确率等指标;
- 可视化模型图(操作和层);
- 查看权重、偏差或其他张量随时间变化的直方图;
- 将嵌入投射到较低的维度空间;
- 显示图片、文字和音频数据;
- 剖析 TensorFlow 程序。
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。其中可视化的主要功能如下:
- 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/然后在浏览器发出请求时分析训练中记录的数据,绘制训练过程中的图像。