Safety-Gym环境配置与安装
官網:
https://github.com/openai/safety-gym
https://github.com/openai/safety-starter-agents
一、安裝依賴環境配置
建議使用python 3.7及以下環境,因為官方的safety-rl是基于tensorflow1.13.1實現,而tensorflow1.13.1只能支持python3.7及以下。如果不用官方的safety-rl可以裝python3.8以上。
1. MuJoCo安裝(for Linux)
https://github.com/deepmind/mujoco
參考:https://zhuanlan.zhihu.com/p/352304615
Mac M1無法安裝,運行后會報錯:
[1] 8409 illegal hardware instruction ./simulate1.下載mujoco200:
https://www.roboti.us/download.html
點擊mujoco200 linux,下載一個zip壓縮包。
https://www.roboti.us/license.html
點擊Activation key,下載一個txt文件。
在home目錄下
mkdir ~/.mujoco # 創建.mujoco目錄 cp mujoco200_linux.zip ~/.mujoco cd ~/.mujoco unzip mujoco200_linux.zip # 解壓 mv mujoco200_linux mujoco200 # 這一步很重要cp mjkey.txt ~/.mujoco/mujoco200/bin # 把激活碼放到bin目錄下vim ~/.bashrc 在最后添加下面兩行:
export LD_LIBRARY_PATH=~/.mujoco/mujoco200/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}source ~/.bashrc
出現下面這個界面表示安裝成功。
2. 安裝mujoco-py
https://github.com/deepmind/mujoco
不同mujoco版本對應的mujoco-py版本
Mujoco150對應的Mujoco-py版本
(Windows系統只支持這個版本的mujoco,但是safety-gym以來mujoco_py==2.0.2.7及以上版本的,所有似乎Windows下不能用)
pip install mujoco-py==1.50.1.68
Mujoco200對應的Mujoco-py版本
pip install mujoco-py==2.0.2.8
Mujoco210對應的Mujoco-py版本
pip install mujoco-py==2.1.2.14
報錯:
解決方案:
運行顯示以下錯誤:
distutils.errors.CompileError:command′/usr/bin/gcc′failedwithexitcode
分發、編譯錯誤,原因是缺少libosmesa6-dev、patchelf用以動態鏈接
第一步:安裝libosmesa6-dev
sudo apt install libosmesa6-dev
安裝好libosmesa6-dev,如若運行測試缺少如下包,便執行第二步
第二步:安裝patchelf(兩個命令選一個就行)
pip install patchelf sudo apt-get -y install patchelf
參考:https://zhuanlan.zhihu.com/p/547442285
3. 安裝safety-gym
https://github.com/openai/safety-gym
4. 安裝safe-rl
https://github.com/openai/safety-starter-agents
(這一步可不用,看你需不需要使用openai團隊官方提供的算法)
cd safety-starter-agents pip install -e .注意:
建議單獨pip依賴庫,然后setup.py里注釋掉,再運行 pip install -e .
安裝 mpi4py==3.0.2 時也可能會報錯,可以去掉版本號或安裝 mpi4py-3.1.4。
安裝tensorflow可能會出現tensorflow==1.13.1 版本可能找不到(對于python3.8及以上),可以去掉版本號:
pip install tensorflow
但是這樣會有很多代碼會報錯,因為版本不同,很多方法修改刪減了。
或者可以到下面網址下載對應版本tensorflow安裝:
https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/tensorflow/
windows下安裝mujoco和mujoco_py參考:
Win 10、Win 11 安裝 MuJoCo 及 mujoco-py 教程_lan 606的博客-CSDN博客_windows安裝mujoco_py
【Mujoco】在Win10下的安裝
二、測試案例
1. safety-gym測試案例
An environment in the Safety Gym benchmark suite is formed as a combination of a robot (one of Point, Car, or Doggo), a task (one of Goal, Button, or Push), and a level of difficulty (one of 0, 1, or 2, with higher levels having more challenging constraints). Environments include:
- Safexp-{Robot}Goal0-v0: 機器人必須導航到目標。
- Safexp-{Robot}Goal1-v0: 機器人必須導航到目標,同時避免危險。場景中有一個花瓶,但代理人不會因擊中它而受到懲罰。
- Safexp-{Robot}Goal2-v0: 機器人必須導航到目標,同時避免更多的危險和花瓶。
- Safexp-{Robot}Button0-v0: 機器人必須按下目標按鈕。
- Safexp-{Robot}Button1-v0: 機器人必須按下目標按鈕,同時避免危險和 gremlins,同時不要按下任何錯誤的按鈕。
- Safexp-{Robot}Button2-v0: 機器人必須按下目標按鈕,同時避免更多的危險和 gremlins,同時不要按下任何錯誤的按鈕。
- Safexp-{Robot}Push0-v0: 機器人必須將盒子推向目標。
- Safexp-{Robot}Push1-v0: 機器人必須將箱子推向目標,同時避免危險。場景中存在一根柱子,但智能體不會因擊中它而受到懲罰。
- Safexp-{Robot}Push2-v0: 機器人必須將箱子推向目標,同時避開更多的危險和柱子。
(To make one of the above, make sure to substitute {Robot} for one of Point, Car, or Doggo.)
2. safety-rl測試案例
其中
- ALGO is in ['ppo', 'ppo_lagrangian', 'trpo', 'trpo_lagrangian', 'cpo'].
- TASK is in ['goal1', 'goal2', 'button1', 'button2', 'push1', 'push2'] .
- ROBOT is in ['point', 'car', 'doggo'].
- SEED is an integer. In the paper experiments, we used seeds of 0, 10, and 20, but results may not reproduce perfectly deterministically across machines.
- CPU is an integer for how many CPUs to parallelize across.
EXP_NAME is an optional argument for the name of the folder where results will be saved. The save folder will be placed in /path/to/safety-starter-agents/data
例如:
python experiment.py --algo ppo--task goal1--robot point--seed 1024--exp_name project --cpu 1報錯:
解決:
https://blog.csdn.net/qq_42951560/article/details/124997453
pip uninstall protobuf pip install protobuf==3.20.1總結
以上是生活随笔為你收集整理的Safety-Gym环境配置与安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用设计模式——职责链模式
- 下一篇: 前缀表达式详细解释以及代码展现