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深入的简介

知乎上部分前辈的复现:

实现链接:

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

按照这个安装教程操作

在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论文中的结果进行对比,基本一致:

posted @ 2025-02-25 23:08  霜尘FrostDust  阅读(452)  评论(0)    收藏  举报