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都能找到相应的说明



