文章目录
- What
- HOW
- SummaryWriter
What
TensorBoard是TensorFlow自带的一个强大的可视化工具,也是一个Web应用程序套件。
torch.utils.tensorboard
是 PyTorch
提供的一个用于将标量
、图像
、直方图
和其他信息记录到 TensorBoard
中的实用程序包。TensorBoard
是 TensorFlow
提供的一个可视化工具,但 PyTorch
也提供了与 TensorBoard
兼容的接口,使得 PyTorch 用户能够利用 TensorBoard 的强大可视化功能。
HOW
SummaryWriter
SummaryWriter
是 PyTorch 的 torch.utils.tensorboard
模块中的一个类,它用于将模型训练过程中的信息
记录到 TensorBoard 中。通过 SummaryWriter,你可以将标量、图像、直方图、文本等数据写入到 TensorBoard 的日志文件中,以便在 TensorBoard 的 Web 界面中进行可视化。
使用SummaryWriter的步骤
- 创建SummaryWriter对象
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(log_dir='runs/experiment-1')
- 写入数据
- add_scalar(tag, scalar_value, global_step=None)
用于记录标量数据,tag相当于title,scalar_value相当于y,global_step相当于x - add_image(tag, img_tensor, global_step=None, walltime=None)
- 关闭 SummaryWriter
writer.close()
- 启动TensorBoard
在命令行输入如下命令
tensorboard --logdir="文件夹名字" [--port=要使用的端口名]
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
for i in range(100):
writer.add_scalar("y=x",i,i)
writer.close()
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter("logs")
img_path = "data/train/ants_image/6240329_72c01e663e.jpg"
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)
print(img_array.shape)
writer.add_image("test", img_array, 3, dataformats='HWC')
writer.close()
dataformats=‘HWC’:
这指定了img_array的数据格式。HWC表示“高度-宽度-通道”(Height-Width-Channels)。这意味着img_array的第一个维度是图像的高度,第二个维度是宽度,第三个维度是颜色通道(例如,RGB)。
还有其他常见的格式,如CHW(通道-高度-宽度),这取决于你使用的库和数据的表示方式。
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)
print(img_array.shape)
上面采用HWC
的原因