tensorBoard的使用以及常用的transform(第四期)

tensorBoard的使用

  1. 作用:可以将训练中的每一步的数据和图像的变换以可视化的形式展示出来。
  2. tensorBoard 为pytorch 自带的库,安装了pytorch后可直接导入。命令:
    from torch.utils.tensorboard import SummaryWriter
  3. tensorBoard 部分常用函数的用法:
writer=SummaryWriter(addr);

创建一个writer对象,通过该对象可以将所有通过tensorBoard处理结果写
入addr这个目录下
(addr:用户自定义路径,即通过tensorBoard处理的结果存放的位置)
writer.add_image(tag, img, global_step, dataformats="HWC")

#参数依次为:

tag (string类型): 图表标题

img_tensor (): 图片数据(数据类型可以是torch.Tensor, 
numpy.array, or string/blobname)

global_step (int): 训练的次数(第几次)

图片形状:默认(通道数,高度,宽度)(CHW),
若不是默认形状则需要通过   dataformats来指定图片形状

writer.add_scalar(tag, scalar_value, global_step )

#参数依次为:

tag (string类型): 图表标题

scalar_value: 每次训练的结果数值(纵坐标),

global_step (int):训练的次数(第几次)(次数与结果一一对应)(横坐标)

4.writer.add_scalar()函数使用实例代码

from torch.utils.tensorboard import SummaryWriter
import cv2 as cv
import numpy as np

writer=SummaryWriter(r"E:\python\pythonProject_pyTorch\tensorBoard")   

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

5.运行代码后,打开pycharm终端控制台(terminal)

输入命令:

tensorboard --logdir= tensorBoard处理结果的存放路径(绝对路径)

捕获.PNG

6.点击蓝色的链接,会跳转到下图:

捕获.PNG
7.这就是将上面那个实例代码结果进行可视化处理的结果,在图上拖动鼠标,可以看到每处的具体数值变化。

8.writer.add_image()函数使用实例代码

from torch.utils.tensorboard import SummaryWriter
import cv2 as cv
import numpy as np

writer=SummaryWriter(r"E:\python\pythonProject_pyTorch\tensorBoard")    

img=np.array(cv.imread(r"E:\python\pythonProject_pyTorch\dataset\train\ants_image\7759525_1363d24e88.jpg"))
#替换上面的路径
writer.add_image("images", img, 1, dataformats="HWC")

writer.close()

与上面操作一样(上述代码中的图片路径要替换为用户自备的图片的路径),最终结果:

捕获.PNG

9.用pycharm进行tensorboard的图片处理的可视化的时候,可能最后会出现图片无法显示的结果,因此,建议使用jupyter来运行代码。

常用的transform

#ToTensor

trans=transforms.ToTensor()
#创建一个格式化工厂对象(作用:将图片格式转换成tensor类型)

img=Image.open(r"E:\python\pythonProject_pyTorch\dataset\train\ants_image\6743948_2b8c096dda.jpg")

#获得图片

new_img=trans(img)

#将图片img 转换成tensor类型并将结果存入new_img中

#Normalize

norm=transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])

#创建一个格式化工厂对象(作用:将图片进行归一化处理)

#参数依次是归一化的均值(mean),和归一化的标准差(图片是RGB三个维度,因此每个参数位置有三个值)

img_norm=norm(new_img)

#将图片进行归一化处理并返回,图片必须是tensor类型!!!!!!

#Resize
resize=transforms.Resize((512, 512))

#创建一个格式化工厂对象(作用:将图片按指定大小进行伸缩变换)

#参数:(图片宽,图片高)

img_resize=resize(new_img)

#Compose

compose=transforms.Compose([resize, trans])

#创建一个格式化工厂对象(作用:将图片按参数顺序依次变换)

#(第一个工厂的输入类型必须是PTL_Image)

#参数(必须是列表形式[……]):各个处理图片的子工厂(要求上一个工厂的最终输出类型必须满足下一个工厂输入类型的要求)

img_compose=compose(img)

#RandomCrop

randomcrop=transforms.RandomCrop((20, 20))

#创建一个格式化工厂对象(作用:在图片上按指定大小随机裁剪下一块)
#参数:(裁剪宽,裁剪高) 输入类型必须是PTL_Image

img_randomcrop=randomcrop(img)

上述代码如下:

from PIL import Image
from torchvision import transforms

#ToTensor
trans=transforms.ToTensor()    #创建一个格式化工厂对象(作用:将图片格式转换成tensor类型)
img=Image.open(r"E:\python\pythonProject_pyTorch\dataset\train\ants_image\6743948_2b8c096dda.jpg")
#获得图片
new_img=trans(img)   #将图片img 转换成tensor类型并将结果存入new_img中


#Normalize
norm=transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])  #创建一个格式化工厂对象(作用:将图片进行归一化处理)
#参数依次是归一化的均值(mean),和归一化的标准差(图片是RGB三个维度,因此每个参数位置有三个值)
img_norm=norm(new_img)    #将图片进行归一化处理并返回,图片必须是tensor类型!!!!!!


#Resize
resize=transforms.Resize((512, 512))   #创建一个格式化工厂对象(作用:将图片按指定大小进行伸缩变换)
#参数:(图片宽,图片高)
img_resize=resize(new_img)


#Compose
compose=transforms.Compose([resize, trans])  #创建一个格式化工厂对象(作用:将图片按参数顺序依次变换)
# (第一个工厂的输入类型必须是PTL_Image)
#参数(必须是列表形式[……]):各个处理图片的子工厂(要求上一个工厂的最终输出类型必须满足下一个工厂输入类型的要求)
img_compose=compose(img)

#RandomCrop
randomcrop=transforms.RandomCrop((20, 20))  #创建一个格式化工厂对象(作用:在图片上按指定大小随机裁剪下一块)
#参数:(裁剪宽,裁剪高)  输入类型必须是PTL_Image
img_randomcrop=randomcrop(img)
```
```


  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

freejackman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值