Day4 Torchvision 中的Transforms(一)

带路视频:点击跳转
参考资料:点击跳转


前言

torchvision 中的 transforms ,主要是对目标图像进行变换(预处理),它就是一个.py的模块,里面有很多工具,可以理解为一个工具箱。


一、通过transforms.ToTensor去看两个问题

1.transforms该如何使用(python)

可以把transforms视为一个工具箱,里面包含了例如totensor等工具,需要这个类中某个方法的操作时,只需要从工具箱中找到对应方法实例化创建出具体工具,并使用创建好的工具对特定格式的数据进行操作。

ToTensor: Convert a PIL Image or numpy.ndarray to tensor

totensor“工具”为例:

(其中img是一个指定过路径的PILImage型图片,以Image.open方式打开)

from torchvision import transforms
tensor_trans=transforms.ToTensor()  # 创建具体的工具"tensor_trans"
img_tensor=tensor_trans(img)

图示:
在这里插入图片描述

2.为什么需要Tensor数据类型

因为在tensor中封装了许多训练神经网络中会用到的参数,例如requires_grad等。并且有些特定的方法要求参数类型为tensor,例如add_image等。

二、PILImage型和numpy.ndarray型的读取

1.PILImage

代码如下:

from PIL import Image
path="dataset/train/ants_imge/Ant_1.jpg"
img=Image.open(path)
print(img)

2.numpy.ndarray

代码如下:(安装opencv:pip install opencv-python

import cv2
cv_img=cv2.imread(img_path)
print(cv_img)

三、ToTensor与Tensorboard配合使用

单纯是因为tensorboard中的add_image方法要求传入的参数类型为numpytensor

关键细节在Day3中已经写的够详细,直接上代码:

import numpy as np
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
from PIL import Image

image_path='dataset/train/ants_image/0013035.jpg'
image=Image.open(image_path)

tensor_trans=transforms.ToTensor()
tensor_img=tensor_trans(image)

print(np.array(image).shape)
print(tensor_img.shape)

writer=SummaryWriter('logs')  # 写入tensorboard
writer.add_image('tag', tensor_img, 1)
writer.close()

四、目前学到的三种类型转换关系及其读取(手绘)

在这里插入图片描述
(方便自己复盘用 ^ _ ^)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值