TensorBoardX教程(1)
TensorBoardX教程(1)
TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中。TensorBoard 的主要功能包括:
- 可视化模型的网络架构
- 跟踪模型指标,如损失和准确性等
- 检查机器学习工作流程中权重、偏差和其他组件的直方图
- 显示非表格数据,包括图像、文本和音频
- 将高维嵌入投影到低维空间
TensorBoardX的使用:
Tensorboard
的使用类似于matplotlib
,先创立一个事件文件对象,再将各种文件写入Tensorboard
中进行后续显示
SummaryWriter
是 TensorFlow 的一个类,用于将事件(如张量摘要、图像、音频、视频等)写入到一个事件文件中,以便后续使用 TensorBoard 进行可视化
创建 SummaryWriter
实例时,你需要指定一个日志目录,TensorBoard 将在这个目录中创建事件文件。以下是创建和使用 SummaryWriter
的基本步骤:
创建 SummaryWriter
实例:
1 |
|
使用 SummaryWriter
方法记录数据:
add_scalar
:添加标量数据点add_histogram
:添加直方图数据add_image
:添加图像数据add_audio
:添加音频数据add_video
:添加视频数据add_graph
:添加模型的图结构add_meta_graph
:添加带有元数据的图结构add_session_log
:添加会话日志信息
关闭 SummaryWriter
:
在记录完所有数据后,应该关闭 SummaryWriter
实例以确保所有数据都被刷新到磁盘:
1 |
|
启动TensorBoard:
在命令行内输入tensorboard --logdir runs
,命令解析:
tensorboard
:这是启动 TensorBoard 的命令。--logdir
:这是一个参数,用于指定 TensorBoard 应该从哪个目录读取日志文件。TensorBoard 需要日志文件来展示训练过程中的各种指标,如损失、准确度等。runs
:这是--logdir
参数的值,表示 TensorBoard 将会在当前目录下的runs
文件夹中查找日志文件。通常,这个文件夹包含了不同训练会话的日志,每个会话可能有自己的子文件夹。
现在有更方便的启动TensorBoard
用法:vscode和Pycharm里面的插件,直接点就行了
函数用法解析:
.add_scalar
解析:
用于将单个标量值添加到 TensorBoard 日志的方法
1 |
|
参数解释:
tag
:一个字符串,用于标识数据点的名称。通常,tag
应该包含一个描述性的名称,如'Loss/train'
或'Accuracy/train'
value
:要记录的标量值。可以是整数、浮点数或其他可转换为浮点数的类型global_step
(可选):一个整数,表示当前的训练步骤。如果提供了global_step
,TensorBoard 会将数据点按照步骤顺序显示。如果未提供,可以使用walltime
参数walltime
(可选):一个浮点数,表示当前时间的时间戳(以秒为单位)。如果同时提供了global_step
和walltime
,TensorBoard 会使用这两个参数来确定数据点的位置
.add_scalars
解析:
用于将多个标量值添加到 TensorBoard 日志的方法
1 |
|
参数解释:
scalar_dict
:一个字典,**其键是每个标量的名称,值是相应的标量值。**这些名称将作为tag
的子前缀- 其它的参数说明同前面
.add_histogram
解析:
用于将直方图数据添加到 TensorBoard 日志的方法
1 |
|
参数解释:
values
:一个的torch.Tensor
或numpy
数组,表示要记录的直方图数据max_bins
(可选):一个整数,指定直方图中的最大桶(bin)数。默认情况下,TensorBoard 会根据数据范围自动选择桶数
这张图就是对模型某一个卷积核数据分布状况的直方图可视化,不同的层代表着不同的epoch下卷积核的不同分布(叠在一起了)
.add_image
解析:
用于将图像数据添加到 TensorBoard 日志的方法。这个方法允许你记录和可视化图像数据,例如模型输入、特征图、分割掩码等
1 |
|
参数解释:
img_tensor
:一个四维的torch.Tensor
,表示要记录的图像数据。图像张量的形状应该是[batch_size, channels, height, width]
,其中channels
是图像的通道数(例如,对于 RGB 图像,channels
应该是 3)。max_images
(可选):一个整数,指定在 TensorBoard 中显示的最大图像数量。默认为 1
注:该函数与torchvision.utils.make_grid
同时使用会十分方便
1 |
|
.add_graph
解析:
1 |
|
参数解释:
model
:模型实例input_to_model
(可选):模型的输入数据,可以生成一个随机数,只要shape符合要求即可
其它的函数的用处就没那么广了,如果需要使用自行查阅官方文档