Jekyll2026-02-17T14:20:37+00:00https://misakau.github.io/feed.xmlXun Wangpersonal descriptionXun Wang[email protected]peft和pytorch不兼容2024-12-18T00:00:00+00:002024-12-18T00:00:00+00:00https://misakau.github.io/posts/2024/12/peft_and_pytorch最近在跑LoRA微调Stable Diffusion的时候,发现程序在最后加载LoRA权重时报错:

  File "/anaconda3/envs/lora/lib/python3.10/site-packages/peft/utils/save_and_load.py", line 445, in set_peft_model_state_dict
  load_result = model.load_state_dict(peft_model_state_dict, strict=False, assign=True)
  TypeError: Module.load_state_dict() got an unexpected keyword argument 'assign'

搜了一大圈之后才搞清楚原来assign关键字是在 Pytorch 2.1.x 新增的,而我自己的版本是 Pytorch 2.0.x,所以并没有这个参数…

解决方法是把peft版本降低到peft==0.12.0,这个版本是支持Pytorch 2.0.x的。 而从peft==0.13.0开始就引入了上述不兼容的代码。

]]>
Xun Wang[email protected]
Install D4RL2024-12-16T00:00:00+00:002024-12-16T00:00:00+00:00https://misakau.github.io/posts/2024/12/install_d4rl每次安装D4RL都会踩一堆坑,然后上网搜一堆零散的攻略,所以我自己整理一下整个过程,以后直接来查就好了。

基本环境

conda创建虚拟环境后,从Pytorch官网下载需要的版本。 其他的包缺啥装啥就行。conda和pip记得换源,不然可能会很慢。

conda 换源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

pip 换源

conda activate <env_name>
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装MuJoCo210 — 一般安装的都是MuJoCo210版本,首先去Github上下载对应的压缩包(例如mujoco210-linux-x86_64.tar.gz),并且解压(或者移动)到~/.mujoco/mujoco210文件夹。

解压命令

tar -zxvf <filename.tar.gz>

设置环境变量

然后在~.bashrc中把它添加到LD_LIBRARY_PATH里,如果已有别的版本的mujoco记得屏蔽掉:

export LD_LIBRARY_PATH=/home/wangxun/.mujoco/mujoco210/bin:$LD_LIBRARY_PATH

最后安装2.1.x的mujoco-py即可,例如:mujoco-py==2.1.2.14

安装D4RL

首先把D4RL和mjrl都从Github上克隆下来

克隆命令

git clone [email protected]:Farama-Foundation/D4RL.git
git clone [email protected]:aravindr93/mjrl.git

然后进入虚拟环境,进入mjrl文件夹,用pip安装mjrl

安装命令

cd /your_path_to_mjrl
pip install -e .

然后进入D4RL文件夹,注释掉setup.py中的mjrl链接

@@ -68,6 +68,6 @@
         "termcolor",  # adept_envs dependency
         "click",  # adept_envs dependency
         "dm_control>=1.0.3",
-        "mjrl @ git+https://github.com/aravindr93/mjrl@master#egg=mjrl",
+        #"mjrl @ git+https://github.com/aravindr93/mjrl@master#egg=mjrl",
     ],
 )

然后用同样的方法安装D4RL

cd /your_path_to_D4RL
pip install -e .

完成后测试是否能够成功导入d4rl包。

可能会有一些报错,需要注意下面几个确认点:

确认点1

/usr/lib/nvidia是否添加到环境变量,如果没有,执行下面的命令:

export LD_LIBRARY_PATH=/usr/lib/nvidia:$LD_LIBRARY_PATH

确认点2

Cython版本是否兼容,如果不兼容,安装以下版本:

pip install Cython==3.0.0a10

确认点3

是否安装X11开发工具包,如果未安装,通过以下命令安装:

sudo apt-get update
sudo apt-get install libx11-dev

确认点4

是否安装GL/glew开发工具包,如果未安装,通过以下命令安装:

sudo apt-get update
sudo apt-get install libglew-dev
]]>
Xun Wang[email protected]