前言
预期完成本课后可以使用Pytorch完成简单的图像分类任务。
深度学习基础知识
神经网络学习步骤
模型设计:模型有多少层,每个层有多少个节点;
损失函数和优化方案设计
前向传播:把数据传入模型,在输出层得到结果,计算损失函数。
方向传播:把损失函数方向传播到模型,用来更新参数。
Pytorch深度学习模块
基本配置
需要有packages、配置训练过程的超参数、配置训练用的硬件设备
from torchvision import transforms
image_size=28
data_transform=transforms.Compose([
transforms.ToPILImage(),
transforms.Resize(image_size), #图片统一大小
transforms.ToTensor()
])
数据读入
1.如何读取格式不定的本地数据:Dataset(类)
2.如何将数据加载以供模型输入:DataLoader中shuffle=True,指的是把数据随机。drop_last=True,指的是把不满1个batch的去掉。pin_memory会占用内存,但是会让模型运行更快。
模型构建
神经网络的构造:基于nn.Module
神经网络是通过“层定义+层顺序”的方式构建起来的
神经网络常见层:nn.Conv2d, nn.MaxPool2d,nn.Linear, nn.ReLU
nn.Sequential指的是冠序模型,帮你进行模型的顺序。
损失函数
torch.nn提供了多种预定义的损失函数,也可以自己定义损失函数;
损失函数常用操作:backward()
优化器
torch.optim提供了多种预定义的优化器,也可以自己定义优化器;
优化器常用操作:
step(),zero_grad(),load_state_dict()
训练与评估
模型状态设置:model.train(),model.eval()
总结
这次老师向我们展示了用pytorch进行简单的建模,为后面更加复杂的模型做好基础。