0. 前言
最近看了一些代码,发现大家的代码风格互相不一样,且没有一个统一的风格,所以抽象一个大致流程,用于更快地熟悉代码。
1. 神经网络
从pytorch的代码中看,可以发现发现这么几个阶段。
1.1 数据dataset
这一阶段根据具体需求可以分为离线预处理、在线预处理,主要是对数据预处理,包括不限于图片的处理,名字的处理等等。
代表代码:
1 | class xxx(): |
1.2 神经网络
主要分为:
- 搭建网络
- 输入
- 损失函数
- 反向传播
其中关键的是搭建网络和损失函数。
有些代码会对神经网络的输入再次处理,有些代码会将输入、损失函数、反向传播重新写个方法或者类,类似trainer。
1.3 可视化
可视化方法包括不限于visdom、tensorboard、html、输出重定向。
loss的获取,用一个dict的loss记录。