trainer dashboard
Project description
trainer-xy : 训练仪表盘
训练过程可视化。动态绘制训练的 loss 等信息,并且可以发送消息来暂停/继续训练进程。 由于训练进程和可视化的进程是独立的,所以关闭可视化进程不会影响训练进程,且重新打开可视化进程时, 仍然能正常显示。
特点
设:1各项目下有n次训练,1个训练会向m个消息队列发送消息。 设1个消息队列相当于sql中的一个表,则1次训练相当于一个数据库。 因此,消息队列中的各个队列需要知道他们所属的是哪个训练库。 由于消息队列中的数据会转存到sql中,所以, 在 sql 中,使用训练的名字作为库名,每个队列对应一个表。
-
系统各进程独立,进程间使用消息队列通信。可视化(app)进程不会阻塞训练进程。 由于各部分是分开的,所以即便关闭前后端的可视化进程,也不会影响训练。并且重新打开可视化进程时, 也不会有任何影响。
-
绘图是动态的,不断训练,不断绘图
-
可以在前端页面上暂停/继续训练进程
-
在同一个项目下,可能会对数据进行多次尝试性的训练,每个训练都会有记录(每个训练都属于这个项目名), 可以切换查看训练结果。
-
在 msmg 中,可以一次性删除某个训练的所有队列信息。因为一个训练会有m个信息队列。
-
在 sql 中,使用训练的名字作为库名,每个队列对应一个表。
-
对项目整体结构有较强的要求,需要有标准的 model,config,dataset,train函数等
-
整体依赖性较强,但修改起来也比较方便。比如:要增加一项数据,只需要增加响应的前后端程序即可
环境配置
rabbitmq
使用 3.8.0 版本的rabbitmq,对应的 erlang 版本是 22.1。换用其他版本时,需要注意版本之间的配合。
mysql
后端数据存储使用 mysql,mysql 版本是 5.6.41. 当然,由于存储时直接使用的 pandas ,所以可以使用 pandas 支持的任何数据库, 而不仅仅是 mysql 。pandas 以及 ORM 框架使得切换数据库很方便。
vue
vue cli 版本是 4.0.5。(不做开发不需要配置)
node
node 版本是 11.14.0。(不做开发不需要配置)
python
python 需要是 3.5/3.6 ,版本太高可能会有一定的问题。
依赖说明
后端依赖
- numpy==1.14.5
- pandas==0.23.4
- pika==1.1.0
- ujson==1.35
- sanic==19.3.1
- dill==0.3.1.1
- Sanic_Cors==0.9.8
- PyMySql>=0.9.2
- SQLAlchemy>=1.2.13
trainer 依赖
- nvidia_ml_py3==7.352.0
- psutil==5.4.7
- dataset_xy==1.0.0
- tf (自选)
- keras (自选)
- pytorch (自选)
安装
pip
pip install trainer-xy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.