其他分享
首页 > 其他分享> > 为了论文-Pytorch(2)-TensorBoard和Transforms的使用

为了论文-Pytorch(2)-TensorBoard和Transforms的使用

作者:互联网

1.TensorBoard的使用

  1.1代码及其解析

# 一般通过这个SummaryWriter来创建图像。这个类可以在训练过程中向文件中添加数据,常用的两个方法为add_scalar和add_image,使用方法如下:
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

# 1.实例化这个SummaryWriter:要将东西保存到哪个文件夹,这里保存到该项目下的logs文件夹下,即pytorch01_hello/code/logs
# 如果没有该文件夹会自动创建
writer = SummaryWriter("logs")
# 2.1add_scalar需要三个必须的参数:
# 第一个是图表的标题,第二个是图表的scalar_value,相当图表的y轴,第三个是global_step,意思为目标步数,也就是训练到多少步时输出图像,相当于x轴
for i in range(100):
    writer.add_scalar("x=2y", i, 50)

# 2.2add_image()的使用
img_PIL = Image.open("F:\\pytorch\\pytorch01_hello\\dataset\\train\\ants_image\\5650366_e22b7e1065.jpg")
img_array = np.array(img_PIL)
# 两个必须的参数:tag:自定义,img_tensor:要加载的图像数据
# 注意,要设置dataformats参数,这个参数默认为CHW用于设置图像的格式(shape):C代表通道数量,H代表图像高度,W代表图像宽度
writer.add_image("test", img_array, 3, dataformats="HWC")

writer.close()

  1.2效果图,在Terminal中输入命令tensorboard --logdir=code/logs --port=6007查看运行效果,点击第一张图显示的连接即可从浏览器查看效果图

  

2.transforms的使用

  2.1代码及解析

# 问题:
# 1.python中如何使用transforms
# 2.为什么需要tensor数据类型:我们要将图像转为tensor类型,让神经网络进行训练
from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter


# 用Image.open()读取的图像为PIL类型,用cv2.imread(图像路径)打开的为numpy.ndarray类型
img = Image.open("F:\\pytorch\\pytorch01_hello\\dataset\\train\\ants_image\\5650366_e22b7e1065.jpg")
# 调用transforms中的ToTensor()函数,创建我们自己的工具,我们的工具这里叫做img_trans_tensor
img_trans_tensor = transforms.ToTensor()
# 使用我们的工具将PIL类型图像转为tensor
img_tensor = img_trans_tensor(img)
print(img_tensor)


# SummaryWriter中add_image的使用,运行这个py文件后,在Terminal中输入命令tensorboard --logdir=code/logs --port=6007查看运行效果
writer = SummaryWriter("logs")
# 参数一:自定义的标签,参数二:要加载的图像
writer.add_image("ToTensor", img_tensor)


# transforms中使用Normalize()进行数据归一化,计算公式为output[channel] = (input[channel] - mean[channel]) / std[channel]
# input[channel]:输入,mean[channel]:均值,std[channel]:标准差
print(img_tensor[0][0][0])
# Normalize()需要两个参数,均值和标准差
# output = (0.3804-0.5)/0.2 = -0.2392
trans_noram = transforms.Normalize(0.5, 0.2)
img_noram = trans_noram(img_tensor)
print(img_noram[0][0][0])
# 在Terminal中输入命令tensorboard --logdir=code/logs --port=6007查看运行效果
writer.add_image("Normalize", img_noram, 2)

writer.close()

  2.2效果图,在Terminal中输入命令tensorboard --logdir=code/logs --port=6007查看运行效果,点击第一张图显示的连接即可从浏览器查看效果图

 

标签:tensor,img,--,image,writer,Pytorch,add,Transforms,TensorBoard
来源: https://www.cnblogs.com/XiaoMaGuai/p/16270850.html