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

常用的Transforms

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

常用的Transforms

call的使用

测试代码

class Person:
    def __call__(self, name):
        print("__cell"+"hello"+name)
    def hello(self,name):
        print("hello"+name)

person =Person()
person("zhangsan")
person.hello("lisi")

输出结果

ToTensor

测试代码

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

writer=SummaryWriter("logs")
img=Image.open("dataset/train/ants_image/5650366_e22b7e1065.jpg")
print(img)

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

运行结果

 

Normalize的使用:归一化

输出公式

`output[channel] = (input[channel] - mean[channel]) / std[channel]`

例如值都设置为0.5则(input-0.5)/0.5=2*input-1

如果输入时【0.1】则result=【-1,1】

测试代码

writer=SummaryWriter("logs")
img=Image.open("dataset/train/ants_image/5650366_e22b7e1065.jpg")
print(img)

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


# Normalize
print(img_tensor[0][0][0])
trans_norm=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm=trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.close()

 也可以使用tensorboard输出

writer.add_image("Normalize",img_norm)

结果

 

 resize()的使用:给定序列重新调整尺寸 输入是PIL类型

测试 将尺寸变成512*512   想要用tensorboard输出还要将PIL类型转换为np类型

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

writer=SummaryWriter("logs")
img=Image.open("dataset/train/ants_image/5650366_e22b7e1065.jpg")
print(img)

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



# Normalize
print(img_tensor[0][0][0])
trans_norm=transforms.Normalize([6,1.5,3.5],[4.5,8,2.7])
img_norm=trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm,2)

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


writer.close()

输出

Compose()用法

 

 实现代码

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

writer=SummaryWriter("logs")
img=Image.open("dataset/train/ants_image/5650366_e22b7e1065.jpg")
print(img)

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



# Normalize
print(img_tensor[0][0][0])
trans_norm=transforms.Normalize([6,1.5,3.5],[4.5,8,2.7])
img_norm=trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm,2)

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

# Compose -resize -2
trans_resize_2= transforms.Resize(512)
trans_compose=transforms.Compose([trans_resize_2,trans_totensor])
image_resize_2=trans_compose(img)
writer.add_image("Resize",image_resize_2,1)

writer.close()

运行结果会变宽

其他的函数在Transforms.py都能找到相应的说明

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

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

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