Ubuntu18.04部署强化学习环境(安装gym+mujoco+mujoco-py)保姆级教程
时间:2021-07-14
本文章向大家介绍Ubuntu18.04部署强化学习环境(安装gym+mujoco+mujoco-py)保姆级教程,主要包括Ubuntu18.04部署强化学习环境(安装gym+mujoco+mujoco-py)保姆级教程使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本人针对铲运机的自主铲装问题,基于OpenAI gym开发了一个强化学习环境gym-lhd。其系统环境大致要求为:
- 系统 == Ubuntu18.04LTS 下载
- Anaconda(python == 3.6) 官网
- GCC:5.0 安装
- mujoco == 200官网
- mujoco-py == 2.0.2.9安装
- gym == 0.15.3安装
- 其他:'pandas','py-game','matplotlib'
本文以此为例,记录整个安装过程以供参考。
Anaconda
- 官网下载安装脚本
- 打开终端,进入脚本保存的目录(如
Downloads
) - 在该目录下运行安装脚本,按提示进行安装(多用
Tab
自动补全) - 重启终端生效
cd Downloads/
bash Anaconda3-2021.05-Linux-x86_64.sh
- 创建名为drl(自定)的python3.6环境,并激活环境
conda create -n drl python=3.6 anaconda
conda activate drl
GCC
可以参考这篇博客进行gcc多版本的控制,相信你会用得上
mujoco
如何获得
Computer id
?下载申请页面提供的程序,打开终端并进入该目录
cd Downloads/
,修改权限sudo chmod a+x getid_linux
,运行./getid_linux
- 安装
打开终端,将文件解压并复制到新建目录.mujoco/
下
mkdir ~/.mujoco
cp mujoco200.zip ~/.mujoco
cd ~/.mujoco
unzip mujoco200.zip
从邮箱中下载mjkey.txt
,复制到.mujoco/
中
cp ~/Downloads/mjkey.txt ~/.mujoco
cp ~/Downloads/mjkey.txt ~/.mujoco/mujoco200/bin
- 添加环境变量
sudo echo "export LD_LIBRARY_PATH=~/.mujoco/mujoco200/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" >> ~/.bashrc
sudo echo "export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}" >> ~/.bashrc
source ~/.bashrc
测试
cd ~/.mujoco/mujoco200/bin/
./simulate ../model/humanoid.xml
mujoco-py
最简单的当然是用PIPpip install mujoco-py==2.0.2.9
。这里主要介绍从源码安装:
cd ~/
git clone https://github.com/openai/mujoco-py.git
cd nujoco-py/
sudo apt-get update
sudo apt-get install libgl1-mesa-dev libgl1-mesa-glx libosmesa6-dev
python3-pip python3-numpy python3-scipy
pip3 install -r requirements.txt
sudo apt-get install patchelf
sudo apt-get install libglu1-mesa-dev mesa-common-dev
sudo echo "export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so" >> ~/.bashrc
conda activate drl
sudo python3 setup.py install
测试
ython3
import mujoco_py
import os
mj_path, _ = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
sim.step()
print(sim.data.qpos)
# [-2.09531783e-19 2.72130735e-05 6.14480786e-22 -3.45474715e-06
# 7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
# 8.50646247e-05 -3.45474715e-06 7.42993721e-06 -1.40711141e-04
# -3.04253586e-04 -2.07559344e-04 -8.50646247e-05 1.11317030e-04
# -7.03465386e-05 -2.22862221e-05 -1.11317030e-04 7.03465386e-05
# -2.22862221e-05]
gym
最简单的当然是用PIPpip install gym==0.15.3
。这里主要介绍从源码安装:
cd ~/
git clone https://github.com/openai/gym.git
cd gym/
git checkout 0.15.3
apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig Pillow libglfw3-dev
pip install -e '.[all]'
测试
pytest
本文来自博客园,作者:叶小蜗,转载请注明原文链接:https://www.cnblogs.com/yexiaowo/p/gym.html
原文地址:https://www.cnblogs.com/yexiaowo/p/gym.html
- WordPress发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
- 使用sysbench压力测试MySQL(一)(r11笔记第3天)
- 分享一下php7和其他php多版本共存的配置教程
- 使用sysbench压力测试MySQL(二)
- 使用sysbench压力测试MySQL(三)(r12笔记第6天)
- 解决IE响应式的解决方案css3-mediaqueries.js不生效问题
- MySQL传输表空间小结(r12笔记第2天)
- swingbench压测Oracle小记(r12笔记第20天)
- 分享最近对网站外链跳转页面代码的一些改善
- swingbench压测Oracle小记(r12笔记第19天)
- Oracle闪回原理测试(三)(r12笔记第16天)
- 利用JS生成二维码图片,优化WEB性能及页面加载速度
- Go语言的指针 & *
- MySQL中的double write(二)(r12笔记第17天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android使用GridView实现日历的方法
- Android控件AppWidgetProvider使用方法详解
- R语言使用链梯法Chain Ladder和泊松定律模拟和预测未来赔款数据
- Android ViewPager实现左右滑动的实例
- R语言通过伽玛与对数正态分布假设下的广义线性模型对大额索赔进行评估预测
- R语言中回归模型预测的不同类型置信区间应用比较分析
- 第06期:Prometheus 存储
- 新特性解读 | 数组范围遍历功能
- 技术分享 | MySQL 内存管理初探
- 新特性解读 | 窗口函数的适用场景
- Android自定义View 仿QQ侧滑菜单的实现代码
- Android view随触碰滑动效果
- TextView使用SpannableString设置复合文本 SpannableString实现TextView的链接效果
- FragmentTabHost使用方法详解
- Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】