文章目录
- 任务名称
- 任务简介
- 详细说明
- 作业
- 1. 请用文字描述本周所学知识的重点,并且为每节课列出关键词,将这些本周的关键词以序号进行排序
- 重点
- 关键词
- 附:直播课笔记
- 相对路径的..和.
- 数据读取格式不同怎么处理
- GPU显存占用的影响因素
- batchsize与训练时间的关系
- 过拟合的解决方法
- 预处理套路参考什么
- python中变量前_的含义
- 多进程读取数据
任务名称
本周学习任务简单总结
任务简介
温故而知新,简单回顾本周学到几个重要知识
详细说明
每一周的学习任务都比较重,第一次学过之后特别容易忘,所以在周日及时做一个要点回顾,会让学习效率大大的提升,不会的知识也会越来越少
本周所学的知识点都是属于机器学习训练模块中的数据模块,对数据进行读取,预处理,增强,在其中包含了大量的方法函数,如Dataloader,Dataset,transforms系列等等,大家需要对其中各个函数的作用和运行机制要有一个清晰的认识,认真总结本周所讲解的数据模块中的知识点。
作业
1. 请用文字描述本周所学知识的重点,并且为每节课列出关键词,将这些本周的关键词以序号进行排序
重点
- 数据模块分为四个部分:
- 数据收集:Img,Label
- 数据划分:train valid test
- 数据读取:DataLoader
再分为两个子模块:Sampler和DataSet
Sampler的主要功能是对数据生成索引:Index
DatsSet是根据索引读取数据:Img,Label - 数据预处理:transforms
- Epoch、Iteration与Batchsize的关系:
- Epoch:所有训练样本输入到模型中一次,称为一个Epoch
- Iteration:一批样本输入到模型中,称之为一个lteration
- Batchsize:批大小,决定一个Epoch有多少个lteration
- torchvision是计算机视觉工具包,有三个主要模块:
- torchvision.transforms:常用的图像预处理方法,即图像增强,方法包括数据中心化数据标准化,缩放,裁剪,旋转,翻转,填充,噪声添加,灰度变换,线性变换,仿射变换,亮度、饱和度及对比度变换等,数据增强是为了提高模型泛化能力
- torchvision.datasets:常用数据集的dataset实现,MNIST,CIFAR-10,ImageNet等
- torchvision.model:常用的模型预训练,AlexNet,VGG,ResNet,GoogLeNet等
关键词
dataset的getitem
transform
附:直播课笔记
相对路径的…和.
…:返回上一级目录
.:本级目录
__file__:当前目录
- pycharm中会按照当前运行的.py文件的目录去找相对路径
linux的ide中会按照当前 - windows中用“/”分隔路径
linux中用“\”分隔路径
所以要用os.path.jion()来生成目录
数据读取格式不同怎么处理
图片一般用PIL读取就行,PIL不行的话可以用cv2
只要把数据从硬盘读到ndarray,转换成tensor就行
GPU显存占用的影响因素
batchsize越大,显存占用越多
batchsize与训练时间的关系
batchsize越大,完成一个epoch的时间越短,总训练时间还要看epoch数量
过拟合的解决方法
过拟合往往与训练集和测试集的类别不平衡有关
- 对类别少的样本进行过采样、数据增强
- 对类别多的样本进行欠采样
- 在损失函数上进行加权调整
- 获取更多更全面的数据
- 长尾分布(见图)
预处理套路参考什么
看论文介绍,如AlexNet
python中变量前_的含义
用来接收一个不用的变量,在返回变量但我们不需要这个变量时使用
多进程读取数据
加载数据只与CPU和RAM有关,而GPU是加速计算的
num_worker一般与CPU核心数相同,但是2就够了,主要时间花在训练而不是加载数据上