前言
本教程使用UML图指导我们学习,其中用到了类图和活动图,适用于软件工程出身科班的同学,掌握了类、函数、属性,以及类之间的基本关系,等基本概念,就能基于你已有的编程知识(不论是网站开发,数据分析,嵌入式等)学习机器学习的基础知识。
教材链接
直接使用官网的教材,但是做一些更深入的分析,这些分析能让你在做看起来完全不同的项目时知道如何因地制宜的更改哪些区域。
快速入门 - PyTorch 教程 2.5.0+cu124 文档 - PyTorch 机器学习库
两张图
类图,看这张图要关注package的引用,简单先看看就好,我们在写代码时,会使用这里面的全部内容。
活动图,这张图会指导我们如何组织我们的业务(数据集、训练、识别、验证),我们在写代码时,会使用这里面的全部内容,这张图请仔细阅读,因为这个就是开发流程。
正文
下载数据集
这是一个图片分类任务,是目标识别等复杂任务的基础任务。我们需要用到机器学习的理论知识,以及代码工具来完成,代码工具就是在package里的class或是def。
根据活动图我们首先需要数据集,而代码工具里有这个。
任务:
代码工具,我们使用了顶级包torchvision(其实这是pytorch里专门负责图像视觉任务的包),还有顶级包里的datasets包,最终定位到了FashionMNIST这个class,实例化这个class,就能触发下载,我们也成功下载到了数据集,第一个任务完成:
实际代码:
import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets
from torchvision.transforms import ToTensor
# Download training data from open datasets.
training_data = datasets.FashionMNIST(
root="data",
train=True,
download=True,
transform=ToTensor(),
)
# Download test data from open datasets.
test_data = datasets.FashionMNIST(
root="data",
train=False,
download=True,
transform=ToTensor(),
)
应用:实际上在datasets这个package下我们不只有FashionMNIST这一个class,还有非常多的dataset可以用这种方式下载,你可以根据你的任务,下载你想要的数据集
构造DataLoader
类的实例化,是需要构造的,在构造的时候我们可以放入很多东西(这要符合这个类设计的规则),放入正确的内容,这个类的一些方法才能正确使用。DataLoader是聚合了dataset,这是专业的说法,简单来看就是将dataset作为参数使用。
代码:
batch_size = 8
# Create data loaders.
train_dataloader = DataLoader(training_data, batch_size=batch_size)
test_dataloader = DataLoader(test_data, batch_size=batch_size)
i = 0
for index,(X, y) in enumerate(test_dataloader):
i += 1
print(f"Shape of X [N, C, H, W]: {X.shape}")
print(f"Shape of y: {y.shape} {y.dtype}")
print(f'for count {i} ')
类图,这里其实我认为开始复杂起来了,因为用到了另一个顶级package tourch,这是pytorch最通用的包,你可以看到左边的分支,他的提供了非常多的代码工具,DataLoader就是其中一个,这里我们也能注意到,FashionMNIST其实是Dataset 的subclass:
既然是这样的类关系,那我们继承父类Dataset 实现一个subclass就能使用自己的数据集了。具体留存如下:
torch.utils.data — PyTorch 2.5 文档 - PyTorch 机器学习库
—————————————
待更新