pytorch torchvision.transforms

torchvision.transforms中定义了一系列数据转换形式,有PILImage,numpy,Tensor间相互转换,还能对数据进行处理。

1. ToTensor()

torchvision.transforms.ToTensor()

把一个取值范围是[0,255]的PIL.Image转换成Tensor

shape 为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1]的Tensor

把一个取值范围是[0,255]的PIL.Image转换成Tensor 

import numpy as np
from PIL import Image
from torchvision.transforms import  transforms
image=Image.open(r"./image/test1.jpg")
c=transforms.ToTensor()(image)
print(c.shape)

 shape为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]的Tensor

 

n_out = np.random.rand(100,100,3)
print(n_out.dtype)
 
t_out = transforms.ToTensor()(n_out)
print(t_out.type())

 

import numpy as np
import torch
from PIL import Image
from torchvision.transforms import transforms

image = Image.open(r"./image/test1.jpg")

a = torch.FloatTensor(np.array(image).transpose(2, 0, 1) / 255.0)

b = transforms.Compose([
    transforms.ToTensor()
])(image)

print(a == b)

2. ToPILImage()

将ndarray转换成PILImage

将Tensor转换成PILImage

 将ndarray转化成PILImage

#初始化随机数种子
np.random.seed(0)
 
data = np.random.randint(0, 255, 300)
print(data.dtype)
n_out = data.reshape(10,10,3)
 
#强制类型转换
n_out = n_out.astype(np.uint8)
print(n_out.dtype)
 
img2 = transforms.ToPILImage()(n_out)
img2.show()

 将Tensor转化成PILImage

t_out = torch.randn(3,10,10)
img1 = transforms.ToPILImage()(t_out)
img1.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值