PyTorch中的transforms

 导入包

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

保存在logs下面

图片路径,输出图片的类型为PIL

转化为Tensor类型

归一化Normalize

writer = SummaryWriter("logs")
img = Image.open("E:\\notebookpytorch\\pyTorch学习\\images\\pytorch.jpg")
print(img)

#ToTensor
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor",img_tensor)  #结果进行输出

#class ToPILImage(object)  把totensor类型转化为PIL类型

#Normalize 归一化
print(img_tensor[0][0][0])#第0层第0行第0列
trans_norm = transforms.Normalize([6,3,2],[9,3,5])   #提供均值和标准差,图片为三通道所以是三个数。
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
#结果进行输出
writer.add_image("Normalize",img_norm,2) #把所有图片放在第2组,对应的0,1,2

writer.close()

#例子:(input-0.5)/0.5 = 2*input -1
#input[0,1]
#result[-1,1]                         

#查看图片   在黑框框下查看
#tensorboard --logdir=E:\notebookpytorch\pyTorch学习\Transforms\logs

 logs在文件夹中的位置PyTorch中的transforms_第1张图片

 

调节图片尺寸Resize

等比例缩放图片大小Compose

#Resize(object)  将给定尺寸调节为别的尺寸/若只给定一个数,将等比例缩放
print(img.size)
trans_resize = transforms.Resize((512,512))

#img PIL -->resize-->img_resize PIL
img_resize = trans_resize(img)

#img_resize PIL-->totensor -->img_resize  tentor
img_resize = trans_totensor(img_resize)

writer.add_image("Resize",img_resize,0)
print(img_resize)
writer.close
#Compose ->resize  -2   改变比例
#compose()中的参数是需要一个列表([transforms参数1,transforms参数2])
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)

对图片进行随机剪裁 

#RandomCrop随机裁剪
# trans_random = transforms.RandomCrop(256)    #512显示错误
trans_random = transforms.RandomCrop((25,50))    #50x1000

trans_compose_2 = transforms.Compose([trans_random,trans_totensor])
for i in range(10):
    img_crop = trans_compose_2(img)
#     writer.add_image("RandomCrop",img_crop,i)
    writer.add_image("RandomCropHW",img_crop,i)

writer.close()    
    
    

你可能感兴趣的:(pytorch,深度学习,神经网络)