赞
踩
强化学习实操,首先需要安装一个好用的训练环境。强化学习的训练环境有很多,本文选择了Issac Gym进行环境配置与安装。
本文记录了笔者安装IssacGym的过程,比较曲折,遇到了很多坑,记录下来以供参考。
整体参考这篇博客:Nvidia-Isaacgym+ETH-leggedgym配置指南
Issac Gym运行在linux上,本文选用的操作系统为Ubuntu 20.04。安装Issac Gym之前需要首先安装Nvidia-driver和Cuda模块,而在安装驱动和Cuda之前先安装Anaconda。用Anaconda来管理包比较好用,为了与博客中保持一致,这里也先安装Anaconda。
参考这篇博客:Anaconda介绍、安装及使用教程 这篇博客中内容较全,Anaconda的安装和常用命令都有,按照这个里边的来就行。
需要注意的是我的ubuntu本身在安装anaconda之前就已经安装了一个python 3.8,在安装anaconda时出现这样的一个报错:
为了确保能正常使用,我按照报错修改了PYTHONPATH,使其指向anaconda3:Linux中添加PYTHONPATH配置anaconda环境变量方法
在~/.bashrc中添加了PYTHONPATH:
参考博客:Ubuntu下apt工具包安装NVIDIA driver
重启后,在终端中输入nvidia-smi
,但是出现了以下信息:
上网查了查,没有查到有效信息。然后在重启ubuntu时又发现电脑打印了一些奇怪的报错:
最后两行是新出现的报错,推测跟我终端输出无法发现设备有关。上网查了查发现依然没什么有效的信息。
本身用这个移动硬盘的双系统每次进入系统时都会出现一些报错,感觉本身就有一些问题。现在又出现了这个问题,我决定放弃移动硬盘双系统,直接在电脑的硬盘上安装双系统。考虑到现在的硬盘空间不太富裕,于是决定先加装一个512G的固态,然后再划出300G左右的空间给ubuntu系统,在电脑的硬盘上装一个ubuntu。购买了拆机套装、笔记本螺丝和固态,等待送达ing…
固态送达后装到了电脑上,实际有400多G,然后分出来了100G给windows,剩下300多G给ubuntu装双系统用。然后参考网上教程装了一个双系统ubuntu22.04,进入之后,按照教程安装anaconda。
再次安装驱动时,还是安装推荐的驱动,但是是通过Software&Update来下载安装的驱动:525-open,装好之后输入nvidia-smi
还是显示No devices were found。去网上查了好多方法,耗了半天时间,实在没有耐心了,上淘宝找了个linux咨询,花了180块钱**(我不会忘记的)**解决了问题,nvidia-smi
成功显示了。
就我观察,淘宝的那个人进行的操作就是换了个驱动安装,从525-open换成了525。感觉可能就是驱动版本的问题,可能我多换两个驱动版本就好了(哭)
参考这篇博客:Linux安装CUDA
添加PATH时除了有版本号的cuda-11.8要添加之外,可以把没有版本号的cuda对应的目录也添加到PATH下。
注意给CUDA添加了PATH之后要运行sudo ldconfig
安装cuDNN时要将include下的所有文件复制到cuda下,lib下的就复制所有以libcudnn开头的就行。好多教程比较老,include下的只复制了cudnn.h。
ldconfig
后可能会出现链接的错误,参考此博客即可(链接)
用conda创建一个环境,python版本为3.8:
conda create -n your_env_name python=3.8
这个环境就是之后用来跑IsaacGym的环境。base的python版本为3.9,不适合用于IsaacGym,所以我们创建了这个新环境。
环境创建完毕后,激活环境:
conda activate your_env_name
接下来的操作都在这个python3.8的环境中进行。
在创建的环境中配置pytorch
官方指引:Start Locally
根据自己的操作系统、安装方式、计算平台选择相应的安装命令
如果conda install太慢的话,可以用mamba,参考本文档的<问题解决>中的<conda install时solving environments很慢>
Isaac Gym下载地址:Isaac Gym - Preview Release
在nvidia完成注册之后免费下载,版本>=preview3即可。
下载后解压得到isaacgym文件夹,切换到isaacgym下的python文件夹下,有一个setup.py
,然后执行安装操作:
pip install -e .
git clone rsl_rl仓库:github:rsl_rl
切换到rsl_rl文件夹下,有一个setup.py
,然后安装:pip install -e .
git clone leggedgym仓库:legged_gym
切换到legged_gym文件夹下,有一个setup.py
,然后安装:pip install -e .
在上述安装过程中如果显示有什么模块缺失的话(tensorboard等),直接用conda/mamba/pip install即可。
配置好isaacgym后,切换到isaacgym/python/example
下,执行python 1080_balls of solitude.py
,出现以下界面即说明issacgym配置成功:
将3个都配置好之后,切换到legged_gym/legged_gym/scripts
下,执行python train.py
,出现以下界面即说明3个模块都配置成功:
在conda install
或mamba install
后加上-c pytorch -c nvidia
就可以了
下载mamba,用mamba安装包。详细参考下面这个博客:
一招解决Conda安装卡在solving environment这一步!
运行sudo ubuntu-drivers autoinstall
时出现此问题。
参考这个博客:无法连接到ppa.launchpad.net(91.189.95.83)
设置了超时之后,更换为了阿里云的源,还是不太行。又更换为了当前最好源,yun-idc。尝试用Software&Update安装驱动,虽然安装的时候还是较慢,但是尝试了几次之后成功安装了驱动:
应该是网络的问题,这个只能通过换源、换时段等方法来缓解,没有找到根本性的解决方法。
Segmentation Fault在学习C的时候遇到过,经常是数组越界、非法内存访问、栈溢出导致这种问题。在这里的话如果要debug问题出在哪里的话太过于耗费时间了,所以我没有进行处理。
在网上搜了一下之后,基本上可以确定是显存不够的问题。我的游戏本的GPU是3050,显存4G。在学姐的6G笔记本上没问题。
换成了一个12G显存的台式机之后,重新配置环境,这次配置的比较顺利,顺利出现了配置成功之后的界面。
搞学习,GPU还是得过硬。
在排查过程中发现了gpu-manager出现异常,无法寻找gpu。
我解决这个问题是通过换显卡驱动版本。我的GPU为RTX 3050,一开始下载的驱动版本为525-open,然后出现了上述问题。但是重新安装了525版本之后,能够正常输出显卡信息。
推测就是显卡驱动版本的问题。驱动版本不对的话就可能无法找到设备。遇到这个问题了可以多换几个版本的驱动试试,不一定用recommended的版本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。