flask实现的一个完整的项目,用于在自己的服务器上部署DeepCubeA算法并可视化。
1. DeepCube
- 本项目要求在大内存下运行,本地运行需要2G内存
- app.py为服务器运行文件,其中两个solve择一即可
- 第一个solve函数为运行本地GPU计算
- 第二个solve函数为调用原网页解法API
- 在app.py中,增加这一行
可以实现直接python app.py即可,作用是指定使用GPU 0
os.environ['CUDA_VISIBLE_DEVICES']='0'
- Linux环境,非windows即可,本地mac、服务器CentOS、本地Ubuntu均测试成功
- python == 2.7
- tensorflow == 1.8.0
- flask == 1.0
- 其他包要求在requirments.txt
pip install -r requirements.txt
cd flask
python app.py
- code
- 存放深度学习求解魔方模型的代码
- 详细解释参照code/README.md
- 其中code\scripts\nnetSolve.py为魔方求解接口
- flask
- 存放flask服务器后端
- 具体如下:
- app.py:服务器运行文件
- static:网页静态资源(js脚本等)
- templates:存放页面html文件
- environment
- 原深度学习求解魔方模型的文件夹,暂无用
- metadata
- 原深度学习求解魔方模型的文件夹,暂无用
- "/"
- GET接口,返回最早版本魔方求解页面
- "/initState"
- POST接口,魔方求解页面初始化状态用
- "/solve"
- POST接口,魔方求解页面求解用,发送魔方状态序列,返回求解步骤等
- Agostinelli, Forest, et al. "Solving the Rubik’s cube with deep reinforcement learning and search." Nature Machine Intelligence 1.8 (2019): 356-363.[link]
- DeepCubeA Source Code.
2. DeepCubePlus
在实现了DeepCube简单克隆之后,在Plus版中增加了以下前台功能:
- 自由输入方式:旋转序列、涂色
- 增加了单个旋转按钮
- 增加了验证模块
- 增加了魔方转动,展开图跟着变化
- flask/static/main.plus.js文件,增加的前台功能都是在这个文件里的
- flask/templates/index.plus.html文件,新版的主页
- flask/app.plus.py文件,新版的运行文件,重写了solve方法
pip install -r requirements.txt
cd flask
python app.plus.py