作者:otion | 来源:互联网 | 2024-10-12 04:41
一、Transorboard使用(可视化工具)(观察模型不同阶段的数据状况)fromtorch.utils.tensorboardimportSummaryWriterfromPI
一、Transorboard使用(可视化工具)
(观察模型不同阶段的数据状况)
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
writer = SummaryWriter("logs") //事件写入logs文件
#读入两张图片
image_path="data/train/ants_image/0013035.jpg"
image_path2="data/train/bees_image/16838648_415acd9e3f.jpg"
img_PIL = Image.open(image_path) #Image读入的类型无法被add_image使用
img_array = np.array(img_PIL) #数据类型转换
img_PIL2 = Image.open(image_path2)
img_array2 = np.array(img_PIL2)
#图片加入到可视化步骤1和2中
writer.add_image("test",img_array,1,dataformats=‘HWC‘) #dataformats,指定输入参数的含义,默认是CHW
writer.add_image("test",img_array2,2,dataformats=‘HWC‘)
#scalars的使用例子(随意举例不具意义),纵轴保存的值,横轴为步骤数
for i in range(100):
writer.add_scalar("y=x^2",i*i,i)
//关闭写入
writer.close()
在terminal输入tensorboard --logdir=logs --port=6007,得到可视化结果的网页链接
二、transform的使用(图像变换工具箱)
1.transform库里相当于工具模板,需要自己根据模板创建工具,之后才能调用
2.tensor数据类型中封装了神经网络中需要的参数,需要转换为此类数据类型
from PIL import Image
from torchvision import transforms
import cv2
#tensor数据类型
#通过transform.ToTensor去看两个问题
#1.如何使用transform 2.Tensor数据类型有什么作用
#读图片
img_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path) #用Image读为PIL型
img2 = cv2.imread(img_path) #用opencv读为numpy型
#创建工具
tensor_trans = transforms.ToTensor() #转换为tensor型
#调用
tensor_img = tensor_trans(img)
tensor_img2 = tensor_trans(img2)