前言
自 2017 年 1 月 PyTorch 推出以来,其热度持续上升,一度有赶超 TensorFlow 的趋势。PyTorch 能在短时间内被众多研究人员和工程师接受并推崇是因为其有着诸多优点,如采用 Python 语言、动态图机制、网络构建灵活以及拥有强大的社群等。因此,走上学习 PyTorch 的道路已刻不容缓。
本教程以实际应用、工程开发为目的,着重介绍模型训练过程中遇到的实际问题和方法。如上图所示,在机器学习模型开发中,主要涉及三大部分,分别是数据、模型和损失函数及优化器。本文也按顺序的依次介绍数据、模型和损失函数及优化器,从而给大家带来清晰的机器学习结构。
通过本教程,希望能够给大家带来一个清晰的模型训练结构。当模型训练遇到问题时,需要通过可视化工具对数据、模型、损失等内容进行观察,分析并定位问题出在数据部分?模型部分?还是优化器?只有这样不断的通过可视化诊断你的模型,不断的对症下药,才能训练出一个较满意的模型。
为什么写此教程
前几年一直在用 Caffe 和 MatConvNet,近期转 PyTorch。当时只想快速地用上 PyTorch 进行模型开发,然而搜了一圈 PyTorch 的教程,并没有找到一款适合的。很多 PyTorch 教程是从学习机器学习 (深度学习) 的角度出发,以 PyTorch 为工具进行编写,里面介绍很多模型,并且附上模型的 demo。
![](/qrcode.jpg)
然而,工程应用开发中所遇到的问题并不是跑一个模型的 demo 就可以的,模型开发需要对数据的预处理、数据增强、模型定义、权值初始化、模型 Finetune、学习率调整策略、损失函数选取、优化器选取、可视化等等。鉴于此,我只能自己对着官方文档,一步一步地学习。
起初,只是做了一些学习笔记,后来觉得这些内容应该对大家有些许帮助,毕竟在互联网上很难找到这类内容的分享,于是此教程就诞生了。
本教程内容及结构
本教程内容主要为在 PyTorch 中训练一个模型所可能涉及到的方法及函数,并且对 PyTorch 提供的数据增强方法(22 个)、权值初始化方法(10 个)、损失函数(17 个)、优化器(6 个)及 tensorboardX 的方法(13 个)进行了详细介绍。
本教程分为四章,结构与机器学习三大部分一致:
-
第一章,介绍数据的划分,预处理,数据增强;
-
第二章,介绍模型的定义,权值初始化,模型 Finetune;
-
第三章,介绍各种损失函数及优化器;
-
第四章,介绍可视化工具,用于监控数据、模型权及损失函数的变化。
本教程适用读者:
-
想熟悉 PyTorch 使用的朋友;
-
想采用 PyTorch 进行模型训练的朋友;
-
正采用 PyTorch,但无有效机制去诊断模型的朋友;
干货直达(节选):
1.6 transforms 的二十二个方法
2.2 权值初始化的十种方法
3.1 PyTorch 的十七个损失函数
3.3 PyTorch 的十个优化器
3.4 PyTorch 的六个学习率调整方法
4.1 TensorBoardX
项目代码:https://github.com/tensor-yu/PyTorch_Tutorial
电子书下载:
关注公众号【计算机联盟】,回复关键词【PyTorch】