栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Transformers

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Transformers

torchvision.transforms是pytorch中的图像预处理包。

注:一般用Compose把多个步骤整合到一起:

比如说:

transforms.Compose([

transforms.CenterCrop(10),

transforms.ToTensor(),

]) 对里面的操作依次执行
这样就把两个步骤整合到了一起。

实例:

经常看到

transform.ToTensor(),
transform.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))

那transform.Normalize()是怎么工作的呢?以上面代码为例,

ToTensor() 能够把灰度范围从0-255变换到0-1之间,
transform.Normalize()则把0-1变换到(-1,1).
具体地说,对每个通道而言,Normalize执行以下操作:
image=(image-mean)/std
其中mean和std分别通过(0.5,0.5,0.5)和(0.5,0.5,0.5)进行指定。原来的0-1最小值0则变成(0-0.5)/0.5=-1,而最大值1则变成(1-0.5)/0.5=1.

from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")
img = Image.open("dataset/data/train/ants_image/36439863_0bec9f554f.jpg")

# ToTensor
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor", img_tensor)

print(img_tensor[0][0][0])
# Normalize
trans_norm = transforms.Normalize([1, 3, 5], [5, 3, 1])
img_norm = trans_norm(img_tensor)
print(img_norm[0, 0, 0])
writer.add_image("Normalize", img_norm)

# Resize
print(img.size)
tran_resize = transforms.Resize((512, 512))
# img PIL -> resize -> img_resize -> PIL
img_resize = tran_resize(img)
# img_resize PIL -> totensor -> img_resize -> tensor
img_resize = trans_totensor(img_resize)
writer.add_image("Resize", img_resize, 0)
print(img_resize)

trans_resize_2 = transforms.Resize(512)
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2, 1)

writer.close()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948202.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号