PyTorch深度学习入门笔记(三)TensorBoard的使用

首先安装TensorBoard

从函数介绍可知:这个类主要是将事件文件写入 log_dir文件夹,可以被TensorBoard解析。
要用到其成员函数 add_scalar()

pip install tensorboard
from torch.utils.tensorboard import SummaryWriter
def add_scalar(
        self,
        tag,
        scalar_value,
        global_step=None,
        walltime=None,
        new_style=False,
        double_precision=False,
    )

  1. tag: 图表的 title
    PyTorch深度学习入门笔记(三)TensorBoard的使用_第1张图片

  2. scalar_value:保存的数值,即对应y轴

  3. global_step: 步长,即对应x轴

打开可视化面板

tensorboard --logdir=E:\CodeCodeCodeCode\AI\Pytorch-study\logs

使用

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np

writer = SummaryWriter("../logs")

writer.add_image()
for i in range(100):
    writer.add_scalar("y=2x", 2*i, i)
writer.close()

(pytorch) E:\CodeCodeCodeCode\AI\Pytorch-study>tensorboard --logdir=E:\CodeCodeCodeCode\AI\Pytorch-study\logs
TensorFlow installation not found - running with reduced feature set.
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.7.0 at http://localhost:6006/ (Press CTRL+C to quit)

可通过参数 --port=xx 指定端口,以防止端口冲突(多用户使用同一服务器进行训练时)

tensorboard --logdir=logs --port=6007

注:

这个命令会打开 logdir文件夹下的所有事件文件。
图表以 tag 作为区分,可向一个 tag多次写入数据,会自动进行拟合。

add_image()

首先下载一下测试数据集,链接:
https://pan.baidu.com/s/1jZoTmoFzaTLWh4lKBHVbEA 密码: 5suq
下载好后解压重命名为 data

再使用成员函数 add_image()
PyTorch深度学习入门笔记(三)TensorBoard的使用_第2张图片
可以看到使用此函数所需要提供的参数,这里注意,img_tensor是图像数据,对其数据类型有所要求,必须是torch.Tensor、numpy.array或者字符串。
这里可以利用 PIL.image.open() 函数读取图片,然后用 numpy.array()对PIL图片进行数据类型转换。

全部代码如下

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np

writer = SummaryWriter("../logs")

# writer.add_image()
# for i in range(100):
#     writer.add_scalar("y=2x", 2*i, i)
# writer.close()

image_path = "../data/train/ants_image/6743948_2b8c096dda.jpg"

img = Image.open(image_path)
# (512, 768, 3) 此时是高度-宽度-通道,所以下边加上HWC
img_array = np.array(img)
# writer.add_image("test", img_array, 1, dataformats='HWC')
writer.add_image("test", img_array, 3, dataformats='HWC')
for i in range(100):
    writer.add_scalar("y=3x", 5*i, 2*i)
writer.close()

可以修改step实现显示每一步的输入图片数据,但是前边的图片地址应该不断更新

PyTorch深度学习入门笔记(三)TensorBoard的使用_第3张图片
PyTorch深度学习入门笔记(三)TensorBoard的使用_第4张图片

你可能感兴趣的:(pytorch,机器学习,人工智能,pytorch,深度学习,人工智能)