当前位置:网站首页>PyTorch②---transforms结构及用法、常见的Transforms
PyTorch②---transforms结构及用法、常见的Transforms
2022-08-02 14:07:00 【伏月三十】
常见的Transforms
PIL类型:用PIL读入,Image.open()
tensor类型:用transforms转,ToTensor()
narrays类型:用opencv读入,cv.imread()
常见的方法
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer=SummaryWriter("logs")
img=Image.open("images/3.jpg")
print(img)
'''ToTensor()'''
trans_totensor=transforms.ToTensor()
img_tensor=trans_totensor(img)
writer.add_image("ToTensor",img_tensor)
'''Normalize(torch.nn.Module)'''
#输入两个参数,是平均值和方差,图片是三维的。(input-mean)/std
#output[channel] = (input[channel] - mean[channel]) / std[channel]
print(img_tensor[0][0][0])
trans_norm=transforms.Normalize([1,5,8],[3,2,1])
img_norm=trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm,1)
'''Resize(torch.nn.Module)'''
print(img)
trans_size=transforms.Resize((512,512))
#img PIL->resize->img_resize PIL
img_resize=trans_size(img)
#img_resize PIL->img_resize tensor
img_resize=trans_totensor(img_resize)
print(img_resize)
writer.add_image("Resize",img_resize,1)
'''Compose:对一张图片的多种操作合并成一种'''
trans_resize_2=transforms.Resize(512)
#先进行裁剪,再变成tensor的类型
trans_compose=transforms.Compose([trans_resize_2,trans_totensor])
img_resize_2=trans_compose(img)
writer.add_image("Resize2",img_resize_2,1)
'''RanDomCrop:随机裁剪'''
trans_random=transforms.RandomCrop((200,400))#裁剪正方形的话直接(512),一个括号
#先进行裁剪,再变成tensor的类型
trans_compose_2=transforms.Compose([trans_random,trans_totensor])
for i in range(10):#随机裁剪10步
img_crop=trans_compose_2(img)
writer.add_image("RanDomCrop1",img_crop,i)
writer.close()
边栏推荐
猜你喜欢
随机推荐
流,向量场,和微分方程
In the Visual studio code solutions have red wavy lines
最小树高度
不可不知的反汇编相关知识
GPT2计算流程详解
liunx下mysql遇到的简单问题
想做好分布式架构?这个知识点一定要理解透彻
没学好统计学的下场
华为防火墙IPS
MySQL知识总结 (三) 索引
无人驾驶综述:摘要
CTF-XSS
tensorflow实战之手写体识别
2. Basic use RecyclerView
关于Flink
vscode compiles the keil project and burns the program
统计偏科最严重的前100名学生
Kubernetes资源编排系列之三: Kustomize篇
PostgreSQL 性能谜题
“自主可控”的正确姿势