PyTorch深度学习快速入门教程【小土堆】详细学习笔记(第12-22个视频笔记)

本学习笔记源自于B站up主【我是土堆】的视频教程:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】

本博客是该视频教程中第12-22个视频的详细学习笔记,第1-11个视频、第23-33个视频的详细学习笔记链接如下:

PyTorch深度学习快速入门教程【小土堆】详细学习笔记(第1-11个视频笔记)

PyTorch深度学习快速入门教程【小土堆】详细学习笔记(第23-33个视频笔记)

目录

12、常见的Transforms(一)

(1)Python中__call__的用法

(2)ToTensor的使用

(3)Normalize(归一化)的使用

13、常见的Transforms(二)

(1)Resize的使用

(2)Compose的使用

(3)RandomCrop的使用

(4)Transforms使用总结

14、torchvision中的数据集使用

15、DataLoader的使用

16、神经网络的基本骨架-nn.Module的使用

17、土堆说卷积操作(可选看)

18、神经网络-卷积层

19、神经网络-最大池化的使用

20、神经网络-非线性激活

21、神经网络-线性层及其他层介绍

22、神经网络-搭建小实战和Sequential的使用


12、常见的Transforms(一)

1)Python中__call__的用法

代码如下(建议复制到PyCharm中阅读):

class Person:
    def __call__(self, name):       # __表示 call是内置函数
        print("__call__"+"hello"+name)

    def hello(self, name):
        print("hello"+name)

# 主函数
person = Person()                   # 新建一个 Person对象
# 接下来是两种调用 Person的方式
person("zhangsan")
person.hello("lisi")                # 建议用这种调用方法

输出结果如下:

2)ToTensor的使用

代码如下(建议复制到PyCharm中阅读):

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

img_path = "lianshou-dataset/train/ants_image/0013035.jpg"
img = Image.open(img_path)

writer = SummaryWriter("tensorboard-test")

# ToTensor的使用
tensor_trans = transforms.ToTensor()
img_tensor = tensor_trans(img)
writer.add_image("ToTensor", img_tensor)

writer.close()

运行结果如下:

3)Normalize(归一化)的使用

代码如下(建议复制到PyCharm中阅读):

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

img_path = "lianshou-dataset/train/ants_image/0013035.jpg"
img = Image.open(img_path)

writer = SummaryWriter("tensorboard-test")

# ToTensor的使用
tensor_trans = transforms.ToTensor()
img_tensor = tensor_trans(img)
writer.add_image("ToTensor", img_tensor)

# Normalize(归一化)的使用
print(img_tensor[0][0][0])         # 输出 img_tensor第一层第一行第一列的像素
trans_norms = transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
# 第一个 [0.5, 0.5, 0.5]表示均值,第二个 [0.5, 0.5, 0.5]表示标准差。之所以有三个 0.5,是因为图片是三通道的
img_norm = trans_norms(img_tensor)
print(img_norm[0][0][0])           # 输出变换后的 img_norm第一层第一行第一列的像素
writer.add_image("Normalize", img_norm)

writer.close()

运行结果如下(可以看出归一化后的图片与原始图片还是有所区别的):

13、常见的Transforms(二)

1)Resize的使用

代码如下(建议复制到PyCharm中阅读):

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

img_path = "lianshou-dataset/train/ants_image/0013035.jpg"
img = Image.open(img_path)

writer = SummaryWriter("tensorboard-test")

# ToTensor的使用
tensor_trans = transforms.ToTensor()
img_tensor = tensor_trans(img)
writer.add_image("ToTensor", img_tensor)

# Resize的使用
print(img.size)
trans_resize = transforms.Resize((512, 512))
# img PIL -> resize -> img_resizeA PIL
img_resizeA = trans_resize(img)
print(img_resizeA)
# img_resizeA PIL  -> totensor  -> img_resizeB tensor
img_resizeB = tensor_trans(img_resizeA)
writer.add_image("Resize", img_resizeB, 0)

writer.close()

运行结果如下:

可以看出,图片的尺寸由768×512变成了512×512。在可视化的结果中也可以看出Resize后图片尺寸的变化。

2)Compose的使用

代码如下(建议复制到PyCharm中阅读):

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

img_path = "lianshou-dataset/train/ants_image/0013035.jpg"
img = Image.open(img_path)

writer = SummaryWriter("tensorboard-test")

# ToTensor的使用
tensor_trans = transforms.ToTensor()
img_tensor = tensor_trans(img)
writer.add_image("ToTensor", img_tensor)

# Compose的使用
trans_resize = transforms.Resize(512)
# PIL -> PIL -> tensor
trans_compose = transforms.Compose([trans_resize,tensor_trans])     # 将多个转换组合在一起
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值