Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
26 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. ... | ||
|