课程学习笔记,课程链接
一、Transforms 的结构及用法
torchvision 中的 transforms 主要是对图片进行一些变换。
tranforms对应 tranforms.py 文件,里面定义了很多类,输入一个图片对象,返回经过处理的图片对象。
?transforms 更多指的是python文件,transforms.py 就像一个工具箱,里面定义的各种类就像各种工具,特定格式的图片就是输入对象,经过工具处理,输出期望的图片结果。
?通过 transforms.ToTensor 去看两个问题:
1、transforms 该如何使用(python)
2、为什么我们需要 Tensor 数据类型
?ToTensor功能是将 PIL Image 类型 或者numpy.ndarray类型的图片对象转换为 tensor类型。
from PIL import Image
from torchvision import transforms
?
# python 中的用法 -> tensor 数据类型
img_path = r"D:\Code\Project\learn_pytorch\pytorch_p9-10\dataset\train\ants\0013035.jpg"
img = Image.open(img_path) ?# Image 是 python 中内置打开图片的库
print(img)
?
'''
? 如何使用 transforms,就是从 transforms 中选择一个 class,进行创建
? 根据创建的工具,来确定参数返回结果
'''
# 引用 transforms 中的 ToTensor 就会返回一个 ToTensor 的对象
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img) ?# ctrl+p 可以查看需要什么参数
print(tensor_img)
使用 transforms 的方法就是先实例化选中的类,然后用实例化的对象去处理图片就行。
二、Tensor数据类型
将第一节中的代码复制到 python 控制台,回车,可在右侧看到各种变量和对象的具体信息:
?tensor 数据类型可以理解为包装了反向神经网络一些理论基础参数。在神经网络中,要将数据先转换为Tensor类型,再进行训练。之前 PIL image 已经学会了读取,numpy.ndarray 最常用的读取方法就是 opencv。
安装 opencv
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
?
img_path = r"D:\Code\Project\learn_pytorch\pytorch_p9-10\dataset\train\ants\0013035.jpg"
img = Image.open(img_path) ?
?
writer = SummaryWriter("logs")
?
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img) ?
?
writer.add_image("Tensor_img", tensor_img)
?
writer.close()
|