- Pytorch主要模块
- 1. 引入
- 2. 基本配置
- 3. 读取数据
- 3.1 ImageFolder类
- 3.2 自定义Dataset类
- 3.3 DataLoader按批次读入数据
- 4. 搭建模型
- 5. 模型初始化
- 5.1 初始化方法
- 5.2 初始化函数的封装
- 6. 损失函数
- 7. 优化器
- 8. 训练和评估
- 实践_FashionMNIST时装分类
- 导入常见包
- 设置超参数:batch_size, lr, epochs…
- GPU设置
# 方案一:使用os.environ,这种情况如果使用GPU不需要设置
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'
# 方案二:使用“device”,后续对要使用GPU的变量用.to(device)即可
device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu")
3. 读取数据
- Dataset: 定义好数据的格式和数据变换形式
- DataLoader: 用iterative的方式不断读入批次数据
import torch from torchvision import datasets train_data = datasets.ImageFolder(train_path, transform=data_transform) val_data = datasets.ImageFolder(val_path, transform=data_transform)3.2 自定义Dataset类
自定义Dataset类来实现灵活的数据读取,需继承PyTorch自身的Dataset类。主要包含三个函数:
- __init__: 向类中传入外部参数,同时定义样本集
- __getitem__: 逐个读取样本集合中的元素,可进行一定的变换,并将返回训练/验证所需的数据
- __len__: 返回数据集的样本数
自定义Dataset类链接地址_深入浅出Pytorch
3.3 DataLoader按批次读入数据from torch.utils.data import DataLoader train_loader = torch.utils.data.DataLoader(train_data, batch_size=batch_size, num_workers=4, shuffle=True, drop_last=True) val_loader = torch.utils.data.DataLoader(val_data, batch_size=batch_size, num_workers=4, shuffle=False)4. 搭建模型
- 继承 torch.nn 模块中的Module类
- 重载了 Module 类的 init 函数和 forward 函数(自动生成backward函数)
- 实例化自定义类得到模型变量net
- net(X) 通过 Module 类的 call 函数调⽤自定义类的forward 函数来完成前向计算
神经网络中常见的层:
- 不含模型参数的层
- 含模型参数的层
- 二维卷积层
- 池化层
搭建模型示例_深入浅出Pytorch
5. 模型初始化在深度学习模型的训练中,权重的初始值极为重要。一个好的权重值,会使模型收敛速度提高,使模型准确率更精确。为了利于训练和减少收敛时间,我们需要对模型进行合理的初始化。
5.1 初始化方法通过访问torch.nn.init的官方文档链接 ,发现torch.nn.init提供的初始化方法
5.2 初始化函数的封装def initialize_weights(self): for m in self.modules(): # 判断是否属于Conv2d if isinstance(m, nn.Conv2d): torch.nn.init.xavier_normal_(m.weight.data) # 判断是否有偏置 if m.bias is not None: torch.nn.init.constant_(m.bias.data,0.3) elif isinstance(m, nn.Linear): torch.nn.init.normal_(m.weight.data, 0.1) if m.bias is not None: torch.nn.init.zeros_(m.bias.data) elif isinstance(m, nn.BatchNorm2d): m.weight.data.fill_(1) m.bias.data.zeros_()
模型初始化_深入浅出Pytorch
6. 损失函数相当于模型的负反馈。常见的损失函数介绍
7. 优化器Pytorch优化器库torch.optim提供的十种优化器
8. 训练和评估
训练评估代码_深入浅出Pytorch
- 激活远程服务器虚拟环境,配置环境,打开jupyter notebook并映射到本地,打开本地浏览器
- 手动下载FashionMNIST数据集,并在同级目录新建ipynb文件
- 导入必要的包,设置训练环境和超参数
- 分析数据,自定义dataset类读取并处理数据, DataLoader加载数据
- 搭建模型,类继承nn.Module, 定义模型变量,并重写forward函数
- 选择设置 Loss_fn 和 Optimizer
- 训练并验证模型
- 保存模型参数
FashionMNIST时装分类.ipynb
@夏日回音
暑期编程PK赛 得CSDN机械键盘等精美礼品!


