一级目录
二级目录
三级目录
深度学习流程
1.定义模型
这里需要构建网络模型,后面用这个模型去训练。
2.定义数据增强
这里主要是在数据量少的情况下,对数据进行一些增强,比如平移,翻转,裁剪等操作,以提高模型的泛化能力(这一步不是必须的)。
3.定义数据加载。
这里定义数据加载器,使得模型训练时模型能源源不断地获取数据进行训练。对于Pytorch而言,数据记载主要需要用到Dataset和DataLoader这两个类。
1 Dataset的定义如下:
class Dataset(object):
def __init__(self):
...
def __getitem__(self, index):
return ...
def __len__(self):
return ...
**getitem**函数的作用是根据索引index遍历数据,一般返回image的Tensor形式和对应标注。当然也可以多返回一些其它信息,这个根据需求而定。 **len**函数的作用是返回数据集的长度。
2 DataLoader DataLoader将自定义的Dataset根据batch size大小、是否shuffle等封装成一个又一个batch大小的Tensor,数据给模型进行训练测试。
即在DataLoder中,会触发Mydataset中的getiterm函数读取一张图片的数据和标签,并拼接成一个batch返回,作为模型真正的输入。
class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, collate_fn=<function default_collate>, pin_memory=False, drop_last=False)
dataset:加载的数据集 batch_size:每个batch加载多少个样本 shuffle:设置为True时会在每个epoch重新打乱数据(默认: False) num_workers:用多少个子进程加载数据。0表示数据将在主进程中加载(默认: 0) collate_fn (callable, optional) :将一个list的sample组成一个mini-batch的函数
4.模型训练
这里首先需要定义模型的一些参数配置,优化器,损失函数定义之类的,至此我们就可以进行训练了。
5.模型测试
|