还是要经常写博客, 不然学点东西又容易忘又不喜欢整理.
2021/6/9 kaggle比赛 hungry_geese是一个多人鹅版贪吃蛇, 比赛只给荣誉不给钱, 和子鸣想趁机好好学学强化学习.
多人版贪吃鹅规则比较简单, 和普通贪吃蛇玩法差不多, 就是注意不要撞到别的鹅不然就死了.
一轮比赛最长200步, 最后幸存的胜利, 如果多鹅幸存, 按长度排名. 在游戏期间, 每40步鹅会缩短一格, 同时场上至少存在2个食物.
游戏环境是由kaggle_environment库(链接)提供的.
这个差不多算是gym封装, 并实现了几个游戏包括饿鹅还有connectx(五子棋), github上星不到两百算是用的人比较少. 相关用法github上列出的比较详细.
下载: pip install kaggle-environments
游戏可视化渲染的话有好几种方式, ipynb(notebook), html, ascii等. 下面讲ipynb:
自从机器学习课后就基本没用过notebook, 当时做作业代码用notebook, 书面题用latex. 碰到notebook缺少什么32.dll的痛苦经历历历在目.
windows下 python环境方面
为了减少可能遇见的bug, 我先把电脑python环境清理了一遍.
把往年装的anaconda, 单装的python2.7, python3.6-32bit等乱起八糟的python环境都卸了. 卸完了再换miniconda, 之所以要miniconda替换anaconda是因为在服务器下觉得miniconda轻便方便比anaconda好用, 并且anaconda延迟响应和容易卡顿的可视化程序让我一直很难受. miniconda安装指导中注意选添加path的选项, 不添加的话后续想cmd或powershell使用的话也要手动加.
添加path路径可以是
/miniconda/Scripts 在cmd下用activate来激活环境
/miniconda/condabin 在cmd下用conda activate或activate来激活环境
两者的区别在于Scripts中也包括了base中用到的一些python库, 比如gpustat, 加入环境变量后就可以直接用了. (gpustat不能在windows上用, 涉及curse库不支持等, 纯举例orz)
IDE是vscode
发现用conda prompt命令行打开code会让python, jupyter, pylink等vscode组件加载失败, 于是直接打开vscode选择好解释器位置后, 在命令行里输入conda init powershell然后就可以正常跑python了.
notebook的文件后缀是ipynb, 打开这类文件的时候vscode会自动切到jupyter组件上, 但是实际上我这边创建一个新文件命名后缀为ipynb然后从python文件复制代码过去结果打不开ipynb. 应该是格式与纯文本的.py还是存在区别.
为此用vscode自带的方法创建ipynb, ctrl+shift+p 然后选择jupyter: create new blank notebook
创建完再把代码复制进去就没问题了~
放张图
最后是强化学习框架平台, 要是想写强化学习还是得整pytorch.
知乎上看了一圈知道了openAI的baseline很繁琐, rllib类很多, 很heavy. 清华大佬本科毕设写天授几千行就能跑很好, 还是基于pytorch, 着实让人佩服. 此外还关注到pytorch cherry这个框架, 可惜两三年前大框架就不更新了, 没有做起来, 最近两个月打过一个补丁.
今天工作差不多就这些. 明天继续吧