# trainer-xy **Repository Path**: lambda-xy/trainer-xy ## Basic Information - **Project Name**: trainer-xy - **Description**: 机器学习训练可视化 - **Primary Language**: Unknown - **License**: 0BSD - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-08-17 - **Last Updated**: 2024-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # trainer-xy : 训练仪表盘 # NOTE * 该工具后面会升级到2.0版本,不过2.0版本与当前的1.0版本不兼容。2.0相当于重新构建,页面也会有很大的变化 * 2.0 还在设计中,由于时间有限,所以估计还要很长一段时间,可以先试用1.0 * 2.0 将兼容 tensorboard(x) 的数据格式和页面 * 2.0 将拥有和 tensorboard(x) 相似的提交数据方法(不过支持的数据类型更广泛) ```python information = dict() trainer.dict(information) # 这里相当于1.0中的 msMg.push(information,"information") ``` 训练过程可视化。动态绘制训练的 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 # 开发 * 先启动前端 cd trainer\frontface npm run serve * 再启动后端 cd trainer\examples python startapp.py * rabbitmq webui http://localhost:15672/ admin admin * 清除项目原有信息 tensorboard * 打开 tensorboard