作者:empty 页数:84 出版社:empty |
自2017年1月PyTorch推出以来, 其热度持续上升, 一度有赶超Tensor Flow的趋势。PyTorch能在短时间内被众多研究人员和工程师接受并推崇是因为其有着诸多优点, 如采用Python语言、动态图机制、网络构建灵活以及拥有强大的社群等。因此, 走上学习PyTorch的道路已刻不容缓。本教程以实际应用、工程开发为目的,着重介绍模型训练过程中遇到的实际问题和方法。如上图所示,在机器学习模型开发中,主要涉及三大部分,分别是数据、模型和损失函数及优化器。本文也按顺序的依次介绍数据、模型和损失函数及优化器,从而给大家带来清晰的机器学习结构.通过本教程,希望能够给大家带来一个清晰的模型训练结构。当模型训练遇到问题时,需要通过可视化工具对数据、模型、损失等内容进行观察,分析并定位问题出在数据部分?模型部分?还是优化器?只有这样不断的通过可视化诊断你的模型,不断的对症下药,才能训练出一个较满意的模型。
为什么写此教程:前几年一直在用Caffe和Mat Conv Net, 近期转PyTorch。当时只想快速地用上PyTorch进行模型开发, 然而搜了一圈PyTorch的教程, 并没有找到一款适合的。很多PyTorch教程是从学习机器学习(深度学习) 的角度出发, 以PyTorch为工具进行编写, 里面介绍很多模型, 并且附上模型的demo。本教程仅限于学习交流使用,严禁用于商业用途!本教程仅限于学习交流使用,严禁用于商业用途!然而, 工程应用开发中所遇到的问题并不是跑一个模型的demo就可以的,模型开发需要对数据的预处理、数据增强、模型定义、权值初始化、模型Fine tune、学习率调整策略、损失函数选取、优化器选取、可视化等等.鉴于此,我只能自己对着官方文档,一步一步地学习。助,毕竟在互联网上很难找到这类内容的分享,于是此教程就诞生了。起初,只是做了一些学习笔记,后来觉得这些内容应该对大家有些许帮本教程内容及结构:本教程内容主要为在PyTorch中训练一个模型所可能涉及到的方法及函数, 并且对PyTorch提供的数据增强方法(22个) 、权值初始化方法(10个) 、损失函数(17个) 、优化器(6个) 及tensor board X的方法(13个)进行了详细介绍。
本教程分为四章,结构与机器学习三大部分一致,
第一章,介绍数据的划分,预处理,数据增强;
第四章,介绍可视化工具,用于监控数据、模型权及损失函数的变化
第二章, 介绍模型的定义, 权值初始化, 模型Fine tune;
第三章,介绍各种损失函数及优化器;
1.1Cifarl 0转png.
1.3让PyTorch能读你的数据集.
1.6 transfrms的二十二个方法.
学习交流QQ群:为了更好的帮助大家学习和理解PyTorch以及机器学
习相关知识,特建立一个QQ群,供大家交流,本文的最新修改也会同步到QQ
群及Git Hub.QQ群号:671103375
第一章数据.1
1.2训练集、验证集和测试集的划分.
1.4图片从硬盘到模型.
1.5数据增强与数据标准化.
1.随机裁剪:transfrms.Randm Crp.
2.中心裁剪:transfrms.Center Crp.
3.随机长宽比裁剪transfrms.Randm Resized Crp.
4.上下左右中心裁剪:transfrms.Five Crp.
5.上下左右中心裁剪后翻转:transfrms.Ten Crp.
6.依概率p水平翻转transfrms.Randm Hrizntal Flip.
7.依概率p垂直翻转transfrms.Randm Vertical Flip.
8.随机旋转:transfrms.Randm Rtatin.
9.resize:transfrms.Resize.
10.标准化:transfrms.Nrmalize.
11.转为tensr:transfrms.T Tensr.
12.填充:transfrms.Pad.
13.修改亮度、对比度和饱和度:transfrms.Clr Jitter.
14.转灰度图:transfrms.Grayscale.
15.线性变换:transfrms.Linear Transfrmatin 0.
16.仿射变换:transfrms.Randm Affine.
17.依概率p转为灰度图:transfrms.Randm Grayscale.
18.将数据转换为PIL Image:transfrms.TP IL Image.
19.transfrms.Lambda.
20.transfrms.Randm Chice(transfrms) .
21.transfrms.Randm Apply(transfrms, p=0.5) .
22.transfrms.Randm rder.
2.1.1模型定义的三要素.
2.1.2模型定义多说两句.
2.1.3nn.Se que tial.
2.2权值初始化的十种方法.
2.2.1权值初始化流程.
2.2.2常用初始化方法.
1.Xavier均匀分布.
2.Xavier正态分布.
3.k aiming均匀分布,
4.k aiming正态分布.
5.均匀分布初始化.
6.正态分布初始化.
7.常数初始化.
8.单位矩阵初始化.
9.正交初始化.
10.稀疏初始化.
11.计算增益.
权值初始化杂谈.
2.3模型Fine tune.
第三章损失函数与优化器.
3.1PyTrch的十七个损失函数
1.Ll lss.
2.MSE Lss, ,
3.Crss Entrpy Lss.
4.NLL Lss.
5.Pissn NLL Lss.
6.KL Div Lss.
7.BCE Lss.
8.BCE With Lg its Lss.
9.Margin Ranking Lss.
10.Hinge Embedding Lss.
11.Multi Label Margin Lss.
12.Smth LI Lss.
13.Sft Margin Lss.
14.Multi Label Sft Margin Lss.
15.Csine Embedding Lss.
16.Multi Margin Lss.
17.Triplet Margin Lss.
3.2优化器基类:ptimizer.
3.3PyTrch的十个优化器.
1.trch.ptim.SGD.
2.trch.ptim.A SGD.
3.trch.ptim.R prp.
4.trch.ptim.Ada grad.
5.trch.ptim, Ada delta.
6.trch.ptim.RMS prp.
7.trch.ptim.Adam(AMS Grad) .
8.trch.ptim.Ada max.
9.trch, ptim.Sparse Adam.
4.1r_scheduler.Csine Annealing LR.
10.trch.ptim.L BFGS