强化学习_kaggle_hungry_geese

还是要经常写博客, 不然学点东西又容易忘又不喜欢整理.


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

创建完再把代码复制进去就没问题了~

放张图

ipynb中环境代码示例

最后是强化学习框架平台, 要是想写强化学习还是得整pytorch.

知乎上看了一圈知道了openAI的baseline很繁琐, rllib类很多, 很heavy. 清华大佬本科毕设写天授几千行就能跑很好, 还是基于pytorch, 着实让人佩服. 此外还关注到pytorch cherry这个框架, 可惜两三年前大框架就不更新了, 没有做起来, 最近两个月打过一个补丁.

今天工作差不多就这些. 明天继续吧

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容