12.26 pytorch学习(transfroms工具的使用)

ToTensor()

ToTensor顾名思义就是将数据类型转换为Tensor的格式,支持的参数有PIL,NdArray(numpy)

使用方法:

tensor = transforms.ToTensor()
tensor_img = tensor(img)

先实例化再调用,可见此处用了__call__的魔法方法

Compose()

译为组合,可以将多个Transforms的工具组合一起使用,使用方法见Resize的代码

Resize()

和reshape几乎一样,可以重新定义图片大小。
需要注意的是,resize()的参数必须是一个PIL。
返回类型为PIL
初始化时需要一个元组或单个值:
一个元组指定长宽
单个值是等比例缩放

Normalize()

标准话,会对图像进行数据处理,大概的处理公式就是
output[channel] = (input[channel] - mean[channel]) / std[channel]
例如:

transforms_norm = transforms.Normalize([1,2,3],[3,4,5])
image_tensor_Normalize = transforms_norm(image_tensor)
#[1,2,3]为mean,[3,4,5]为std,image_tensor为input(注意要tensor的格式)

以上所以方法的实例代码:

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer = SummaryWriter("logs")
img = Image.open("C:\\Users\\2477491565\\Desktop\\learn_pytorch\\练手数据集\\train\\ants_image\\0013035.jpg")
print(img)
trans_totensor = transforms.ToTensor()
image_tensor = trans_totensor(img)
#可以是一个参数,也可以是两个参数。一个参数再使用Compose
#两个参数和reshape类似,修改图像的分辨率
transforms_resize_1 = transforms.Resize((521,521))
img_resize_PIL = transforms_resize_1(img)
print(type(img_resize_PIL))
transforms_Totensor = transforms.ToTensor()
img_resize_1_tensor = transforms_Totensor(img_resize_PIL)
writer.add_image("Totensor",img_resize_1_tensor,3)
#一个参数为等比例修改图像,即放或缩小图像
transforms_resize_2 = transforms.Resize(521)
##Compose(组合),可以将多个transforms方法组合在一起使用
transfroms_compose = >transforms.Compose([transforms_resize_2,transforms_Totensor])
img_resize_2_tensor = transfroms_compose(img)
writer.add_image("Totensor",img_resize_2_tensor,4)
#output[channel] = (input[channel] - mean[channel]) / std[channel]
transforms_norm = transforms.Normalize([1,2,3],[3,4,5])
image_tensor_Normalize = transforms_norm(image_tensor)
writer.add_image("Totensor", image_tensor,0)
writer.add_image("Totensor", image_tensor_Normalize,1)
writer.close()

可以在Tensorboard中查看
在这里插入图片描述
等比大小需要双击查看,这里step4就没有演示了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I Am Rex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值