一、Transform
1.1 简介
对图像进行转换
1.2 源码学习
我们学的是transform,其实学的是transform.py
1.3 几个重要的类
- class ToPILImage(object):
- class Compose(object):
- class ToTensor(object):
在学习的过程中进行错误修正
1.4 理解transform
- 如果我们把transform.py当成工具箱的话
- 不同的class就是工具
- tosensor
- resize
拿一些特定格式的图片,经过工具后,输出想要的东西
学习他这个类中重要的方法
二、通过内置PIL的iamge类打开图片
2.1 使用python内置Image类
python中内置了一个Image类,这个类中有open的方法
# 告诉方法要打开图片的路径:绝对路径
img_path = 'data/train/ants_image/0013035.jpg'
# 相对路径
# img_path_abs = 'C:\Users\Administrator\Desktop\Code\learn_pytorch\data\train\ants_image\0013035.jpg'
# 通过这个方式就已经打开了一个图片
img = Image.open(img_path)
print(img)
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=768x512
打开模式是RGB模式,大小显示出来了,还会显示出来图片的逻辑地址
2.2 通过totensor对图片的数据类型进行转换
查看到下面的数据则表示图片的数据类型转换成功
# 1. transform如何使用?
tensor_trans = transforms.ToTensor() # 返回的是一个totensor的对象
tensor_img = tensor_trans(img)
print(tensor_img)
tensor([[[0.3137, 0.3137, 0.3137, ..., 0.3176, 0.3098, 0.2980],
[0.3176, 0.3176, 0.3176, ...,
2.3 如何使用transform?
- 从transform中创建一个对象
- 根据需要使用一个工具
创建一个具体的工具,创建好工具后对工具重新命名
给一个输入,接收这个输出
三、其他
3.1 专业英语
- library 程序库,函数库
- console 控制台
- scatch 划痕,刮伤,刮花
- refactor 重构
- statement 表述,语句
- typo <非正式>排印错误
四、本节代码
# from PIL import Image
from PIL import Image
from torchvision import transforms
# pytorch的用法 tensor的数据类型
# 通过transform.tensor解决两个问题
# 1. transform如何使用?
# 2. tensor的数据类型和普通数据类型相比有什么区别?
# 使用python中内置的Image类
# 告诉方法要打开图片的路径:绝对路径
img_path = 'data/train/ants_image/0013035.jpg'
# 相对路径
# img_path_abs = 'C:\Users\Administrator\Desktop\Code\learn_pytorch\data\train\ants_image\0013035.jpg'
# 通过这个方式就已经打开了一个图片
img = Image.open(img_path)
print(img)
tensor_trans = transforms.ToTensor() # 返回的是一个ToTensor的对象
tensor_img = tensor_trans(img)
print(tensor_img)