Skip to content

Commit

Permalink
ADD: background.md
Browse files Browse the repository at this point in the history
  • Loading branch information
louis-she committed Apr 26, 2019
1 parent 8f3e0e0 commit 0297e0d
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions background.md
@@ -0,0 +1,26 @@
## 背景

使用 PyTorch(一个深度学习框架,主要提供矩阵的计算和自动求导的功能) 打过几次竞赛后,发现写了很多重复代码,于是中途抽空把这些重复代码抽了出来开源了 Minetorch,目前 Minetorch 主要提供了这些功能:

1. 日志
2. 数据预处理「数据流」
3. 自动保存训练模型
4. 标准的训练流程,以及在这个流程上提供很多hooks来让用户customize
5. Drawer,绘图工具,可以生成 png 或实时的在线的表格(依赖 tensorboard)

使用当前版本的 Minetorch,用户只需要创建4个实例,分别是:数据加载器、模型、优化器、损失函数,然后用这几个实例来创建一个 `minetorch.Trainer` 实例,并调用 Trainer 实例的 `train()` 方法就可以了。

Trainer 会自动调用数据加载器,把数据加载器加载的数据喂给模型,再调用损失函数计算损失值,然后用优化器去优化模型。

## 还剩什么问题

在实际的训练或竞赛中,会经常调参,调参完之后需要重新训练模型,这个过程会反复重复;然后高级调参工程师一般还会有一个 Excel,来记录每一次试验的参数和结果;因为需要反复调参,反复改动代码,就算是资深的调参工程师都很难保证一个干净的代码仓库,
经常是改了半天的参数,然后想再复现两三天前的一个实验结果,就完全忘记当时用的什么代码,就再也回不去了。


## 提供方案

1. Web Dashboard,不仅要提供目前已有的可视化训练过程(主要是损失曲线),还要提供数据流的可视化,训练数据可视化。Dashboard 上可以直接新建/编辑试验(调参),开始/暂停训练 etc...
2. 每次训练的数据、用到的组件(代码)、结果、和最后产出的模型,需要做 snapshot 并保存下来,用户随时回到历史任意一次的训练环境。
3. ...

0 comments on commit 0297e0d

Please sign in to comment.