首先引入需要的库:
import torch
from torch.utils.tensorboard import SummaryWriter
import cv2
import numpy as np
from PIL import Image
torch
: PyTorch的主库,用于张量操作和深度学习。SummaryWriter
:从TensorBoard的PyTorch工具包中导入,用于将数据写入TensorBoard日志。cv2
:OpenCV库,用于计算机视觉任务(此处未使用)。np
:Numpy库,用于数值计算和数组操作。Image
:从PIL库导入,用于图像处理。
再创建一个SummaryWriter对象,它会将日志数据保存到logs目录中。
writer = SummaryWriter('logs')
在TensorBoard中记录一个标量数据。add_scalar函数用于添加一个标量值,这里记录了一个线性关系y = 2x。每次循环都会在日志中记录一次这个标量,i是横坐标,2*i是纵坐标。
for i in range(100):
writer.add_scalar("y = 2x", 2*i, i)
使用tensorboard --logdir=logs --port=6009,在http://localhost:6009/#scalars里看到自己的图像,后面的--port=6009并不是必须的,但是还是建议少用默认地址。
如果发现生成出来的线图不止一条,且另一条线的末尾用一根奇怪的线过渡到另一个线的起点。那就将logs文件夹里的所有文件清空试一下,这是系统尝试将两个函数合并导致的。
# 指定图像的路径。
img_path = 'E:\\PyCharm_Project\\Pytorch_2.3.1\\pytorch_2024_06_06_01\\Dataset_a_b\\train\\ants\\0013035.jpg'
# 打开图像,np.array将其转换为Numpy数组。
img_array = np.array(Image.open(img_path))
# 函数用于将图像添加到TensorBoard中,dataformats='HWC'转换指定图像数据格式,因为默认格式是(3个颜色通道,高H,宽W),而narray的默认格式是(H,W,3)
writer.add_image("ants", img_array, 1, dataformats='HWC')
writer.close()
# 关闭SummaryWriter对象,确保所有数据都被写入日志文件中。