/AutoMLServer

AutoMLServer

Primary LanguagePython

运行思路

运行任务时,运行taskcontroller中的run_task, 初始化一个task对象,这个对象会将json文件转换为结点与边的数据结构, 并将json中的config添加到结点对象中。之后取出入度为0的结点,创建新线程运行,运行结束的回调会更新该节点后继结点的入度, 直到所有结点运行完毕。

前端添加新结点

1.在src/components/MLMain/MLComponents/CompModel.js中添加json

2.在src/components/MLMain/MLComponents/Config中添加结点配置的xx.vue文件

3.在src/components/MLMain/MLComponents/ConfigTable.js中引入xx.vue文件

4.修改Project.vue中的动态路由表,在components中添加”xx”: ConfigTable[“xx”]

后端添加新结点

1.在automl/mltask/tasknode中添加结点类继承BaseNode,具体参考其他结点实现。

2.在automl/mltask/nodefactory中注册结点

前端部署(在项目路径中)

1.修改src/baseurl.js至后端IP地址:端口

2.运行npm run build 编译项目

3.sudo mv dist ‘path under server’移动到服务器路径

后端部署(比较复杂,有可能会出问题)

1.安装anaconda

2.安装redis 并启动服务

sudo apt-get install redis-server

service redis start

(在项目路径中)

1.修改config中数据库密码,root@your password ,启动mysql数据库

2.pip install -r requirement.txt 安装依赖

3.conda install -c conda-forge xgboost 安装xgboost

4.conda install -c conda-forge celery 安装celery

5.python initdb.py 导入数据库表

6.nohup celery -A automl.celery worker -P eventlet -c 100 & 启动celery的后台运行worker

7.nohup gunicorn --worker-class eventlet -w 1 -b 0.0.0.0:9977 automl:app > ../automl_log.out 2>&1 & 启动服务器