offline RL | 复现Decision Transformer
本文主要是对论文Decision Transformer: Reinforcement Learning via Sequence Modeling的复现记录
由于论文年代比较早(21年),主要的复现工作也是在22年之前,随着环境和包依赖的改变,实现起来比较困难。笔者作为RL小白也是在配置环境上面吃了大亏,前后搞了好几天,故记录下来这次实验过程,帮助自己理解,也希望对以后其他有需要的人有些帮助。
参考mini-decison-transformer方法:mini-decision-transformer而不是官方的实现方法,另外在paper with code 网站上也有一些其他人的复现工作,选择原因主要是mini-decision-transformer在体现了原作的核心思想的前提下简化了训练内容。
一位大佬对Decision Transformer和Trajectory Transformer深入的简介
知乎上部分前辈的复现:
实现链接:
- 环境配置和数据集下载
- mini_decision_transformer.ipynb
- 也参考了这位同学的尝试,坚定了我对复现mini-DT可行性的信心。
1 环境配置
pycharm配置ssh
我的实验环境是课题组服务器的docker实例(系统为ubuntu20.04,cuda版本12.1),另外为了方便开发,使用本地pycharm通过ssh连接服务器
pycharm通过ssh连接服务器网上有比较多的教程,也可以参考这个pycharm配置ssh和服务器连接
pycharm配置远程Jupyter服务器(可选)
在前面通过ssh成功连接到服务器的前提下,如果想配置远程Jupyter服务器,那么推荐参考这个博客Pycharm配置远程解释器及远程Jupyter服务器
网上许多教程很复杂,还要指定端口,并不适合我的情况。这篇博客方法十分简单,值得注意的是在pycharm命令行实参位置加上 --allow-root
补充一下在Pycharm中jupyter notebook使用服务器conda环境运行
- 服务器conda 环境安装notebook
pip install notebook - pycharm运行notebook
确保已经可以通过ssh将本地电脑ide与服务器连接
在pycharm IDE的终端激活环境,运行命令
jupyter notebook --allow-root
即可以运行服务器上的notebook文件
下载mujoco200
按照这个安装教程操作
-
mujoco210安装可以参考这个博客
在pycharm 专业版中通过ssh远程服务器在训练模型时出现报错
Missing path to your environment variable. Current values LD_LIBRARY_PATH= Please add following line to .bashrc: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mujoco200/bin
问题原因是未对pycharm环境变量做相应设置
参考mujoco环境变量报错:Missing path to your environment variable
手动为pycharm添加环境变量:
在菜单栏 -> Run -> Edit Configurations -> Environment Variables 添加上相应的环境变量
| NAME | Value |
|---|---|
| LD_LIBRARY_PATH | $LD_LIBRARY_PATH:/root/.mujoco/mujoco200/bin |
再次在pycharm中运行该python文件不会报错
实验结果
我用实验室服务器单卡3090大概每个要跑50多分钟
测试了walker2d-medium\halfcheetah-medium\hopper-medium

第一次跑出来mujoco这几个场景,看着这略显鬼畜的画面既激动又想笑.....

最后把实验结果与DT论文中的结果进行对比,基本一致:


浙公网安备 33010602011771号