Ubuntu22.04配置强化学习环境及运行相关Demo

什么是强化学习

强化学习(Reinforcement Learning,简称 RL)是机器学习中的一个重要分支,属于一种基于试错机制的学习方法。它通过让智能体(Agent)与环境(Environment)进行交互,并通过奖励惩罚的反馈机制,逐步学习到一个最优的决策策略(Policy),以达到预期的目标。强化学习广泛应用于机器人控制、游戏 AI、自动驾驶等领域。

强化学习的基本概念

在强化学习中,智能体的目标是通过和环境的不断交互,在每一个时刻做出一个动作(Action),以期最大化它在长期内获得的累计奖励(Cumulative Reward)。我们可以将强化学习问题形式化为一个马尔可夫决策过程(MDP, Markov Decision Process)。下面是强化学习的几个核心组成部分:

1. 状态(State, S)
  • 状态是智能体当前所处的情境或环境中的某种信息表示。比如在围棋中,状态可以表示当前的棋盘布局;在自动驾驶中,状态可以是传感器数据和周围环境的信息。

2. 动作(Action, A)
  • 动作是智能体在某一时刻可以做出的决策。不同的状态对应不同的可能动作。比如在机器人控制中,动作可以是向左转、向右转、加速或减速。

3. 奖励(Reward, R)
  • 奖励是环境对智能体某一动作的反馈信号。它是一个标量,用来衡量该动作的好坏。智能体的目标是通过行动来最大化累积的奖励。比如在游戏中,获胜可以得到正奖励,而失败则可能得到负奖励。

4. 策略(Policy, π)
  • 策略定义了智能体在每个状态下应该采取什么动作。策略可以是确定性的(即在每个状态下都有唯一的动作选择)或者是随机的(即每个状态下都有某个动作的概率分布)。策略是强化学习中智能体需要学习的核心内容。

5. 值函数(Value Function, V 或 Q)
  • 值函数是用来评估某个状态(或状态-动作对)的“好坏”的函数。它表示智能体从某个状态(或状态-动作对)开始,期望能够获得的累计奖励。

    • 状态值函数 V(s):从状态 s 开始,未来期望能获得的累积奖励。

    • 状态-动作值函数 Q(s, a):在状态 s 下采取动作 a 后,未来期望能获得的累积奖励。

强化学习的基本流程

  1. 智能体观察当前状态(State)

  2. 根据策略(Policy)选择一个动作(Action)

  3. 智能体执行这个动作,环境给出反馈,包括下一状态和奖励(Reward)

  4. 智能体根据奖励和下一状态更新策略,优化动作选择

  5. 重复上述过程,直到达到目标或回合结束

强化学习环境配置

安装ubuntu系统及ROS2

这里不在仔细说明;

设置显卡驱动

安装完ROS2后,找到附加驱动

注意:这里高显卡使用545,低显卡使用535,还有一种可能是其他。

安装虚拟环境Anaconda

下载

Download Anaconda Distribution | Anaconda

安装

 bash Anaconda3-2024.02-1-Linux-x86_64.sh

直按回车键,知道出现yes/no,然后选择yes

这里选择no,不需要配置环境。

在bashrc下添加环境变量

  source ~/anaconda3/bin/activate

打开终端,出现base说明安装成功

安装pytorch

 # 创建虚拟环境
 conda create -n ref python=3.8

 #安装PyTorch 1.13
 conda activate ref
 conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
 #这里pytorch太慢的话,运行下面的
 conda install pytorch==1.13.1

安装IsaacGym

下载Isaacgym:Isaac Gym - Download Archive | NVIDIA Developer

 cd isaacgym/python/
 conda activate ref
 #安装
 pip install -e.

安装完之后,我们需要配置一个环境

 conda activate ref
 cd $CONDA_PREFIX
 mkdir -p ./etc/conda/activate.d
 mkdir -p ./etc/conda/deactivate.d
 touch ./etc/conda/activate.d/env_vars.sh
 touch ./etc/conda/deactivate.d/env_vars.sh

找到/home/XXX/anaconda3/envs/ref/etc/conda目录下有两个文件夹

进入activate.d,打开env_vars.sh文件添加下面内容

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib

进入deactivate.d,打开env_vars.sh文件添加下面内容

 # 保存原始的 LD_LIBRARY_PATH
 ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
 ​
 # 要删除的目录
 DIRECTORY_TO_REMOVE="$CONDA_PREFIX/lib"
 ​
 # 使用 grep 过滤掉要删除的目录项
 NEW_LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | tr ':' '\n' | grep -v "$DIRECTORY>
 ​
 # 设置新的 LD_LIBRARY_PATH
 export LD_LIBRARY_PATH=$NEW_LD_LIBRARY_PATH
 ​
 #echo "Original LD_LIBRARY_PATH: $ORIGINAL_LD_LIBRARY_PATH"
 #echo "New LD_LIBRARY_PATH:      $LD_LIBRARY_PATH"

保存,重新进入虚拟环境

测试

 cd isaacgym/python/examples/
 python joint_monkey.py 

安装强化学习

下载:GitHub - roboterax/humanoid-gym: Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer https://arxiv.org/abs/2404.05695

 cd humanoid-gym/
 pip install -e.

基于PPO算法的训练

 #运行
 cd humanoid
 #启动基于PPO算法的训练,任务为humanoid任务,注意这里根据自己的显卡选择训练数量
 python scripts/train.py --task=humanoid_ppo --run_name v1 --headless --num_envs 4096

评估训练好的PPO策略 v1

此命令加载 'v1' 策略以在其环境中进行性能评估。除此之外,它还会自动导出一个JIT模型,适合用于部署。

 python scripts/play.py --task=humanoid_ppo --run_name v1

执行模拟到模拟的模型转换

使用导出的 'v1' 策略来进行模拟到模拟的转换。

 python scripts/sim2sim.py --load_model /home/baining/humanoid-gym/logs/XBot_ppo/exported/policies/policy_1.pt

运行训练好的策略

 python scripts/sim2sim.py --load_model /home/baining/humanoid-gym/logs/XBot_ppo/exported/policies/policy_example.pt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920263.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI 写作(一):开启创作新纪元(1/10)

一、AI 写作:重塑创作格局 在当今数字化高速发展的时代,AI 写作正以惊人的速度重塑着创作格局。AI 写作在现代社会中占据着举足轻重的地位,发挥着不可替代的作用。 随着信息的爆炸式增长,人们对于内容的需求日益旺盛。AI 写作能够…

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…

echarts的图例换行并对齐

现状: 期望: 实现方式: 通过对legend的formatter和textStyle组合设置宽度来实现,代码如下 这里会出现一个问题,发现设置了width没有效果,刚开始以为是宽度给的不够,然后发现并不是&#xff0c…

go-zero(二) api语法和goctl应用

go-zero api语法和goctl应用 在实际开发中,我们更倾向于使用 goctl 来快速生成代码。 goctl 可以根据 api快速生成代码模板,包括模型、逻辑、处理器、路由等,大幅提高开发效率。 一、构建api demo 现在我们通过 goctl 创建一个最小化的 HT…

Windows Server 2022 Web1

载入靶机,看到相关描述: 进入虚拟机发现桌面有phpstudy和解题两个软件: 打开解题.exe,发现里面是一些问题,接下来就需要获取相关信息: 1、shell密码 2、IP地址 3、隐藏账户名称 4、挖矿程序的矿池域名 打…

经典的网络安全技术

以我的理解,“黑客”大体上应该分为“正”、“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善,而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事情,因为邪派黑客…

【TDOA最小二乘解算】两步最小二乘迭代的TDOA解算方法,适用于二维平面、自适应锚点(附MATLAB代码)

本文所述的MATLAB代码实现了一个基于两步加权最小二乘法的二维目标定位算法,利用多个锚点(基站)和时间差到达(TDOA)数据来估计未知目标的位置。 文章目录 运行结果代码代码功能概述代码结构和详细说明初始化部分参数和…

VideoCrafter模型部署教程

一、介绍 VideoCrafter是一个功能强大的AI视频编辑和生成工具,它结合了深度学习和机器学习技术,为用户提供了便捷的视频制作和编辑体验。 系统:Ubuntu22.04系统,显卡:4090,显存:24G 二、基础…

【图像压缩感知】论文阅读:Content-Aware Scalable Deep Compressed Sensing

tips: 本文为个人阅读论文的笔记,仅作为学习记录所用。本文参考另一篇论文阅读笔记 Title: Content-Aware Scalable Deep Compressed Sensing Journal: TIP 2022 代码链接: https://github.com/Guaishou74851/CASNet…

AMD(Xilinx) FPGA配置Flash大小选择

目录 1 FPGA配置Flash大小的决定因素2 为什么选择的Flash容量大小为最小保证能够完成整个FPGA的配置呢? 1 FPGA配置Flash大小的决定因素 在进行FPGA硬件设计时,选择合适的配置Flash是我们进行硬件设计必须考虑的,那么配置Flash大小的选择由什…

统⼀数据返回格式快速⼊⻔

为什么会有统⼀数据返回? 其实统一数据返回是运用了AOP(对某一类事情的集中处理)的思维。 优点: 1.⽅便前端程序员更好的接收和解析后端数据接⼝返回的数据。 2.降低前端程序员和后端程序员的沟通成本,因为所有接⼝都…

window 中安装 php 环境

window 中安装 php 环境 一、准备二、下载三、安装四、测试 一、准备 安装前需要安装 Apache ,可以查看这篇博客。 二、下载 先到这里下载 这里选择版本为“VS16 x64 Thread Safe”,这个版本不要选择线程安全的,我试过,会缺少文…

HarmonyOS Next 关于页面渲染的性能优化方案

HarmonyOS Next 关于页面渲染的性能优化方案 HarmonyOS Next 应用开发中,用户的使用体验至关重要。其中用户启动APP到呈现页面主要包含三个步骤: 框架初始化页面加载布局渲染 从页面加载到布局渲染中,主要包含了6个环节: 执行页…

【Linux网络编程】简单的UDP套接字

目录 一,socket编程的相关说明 1-1,sockaddr结构体 1-2,Socket API 二,基于Udp协议的简单通信 三,UDP套接字的应用 3-1,实现英译汉字典 一,socket编程的相关说明 Socket编程是一种网络通信…

【WPF】Prism学习(十)

Prism MVVM 1.BindableBase 1.1. BindableBase的作用: Prism库提供了一个基础类BindableBase,这个类实现了INotifyPropertyChanged接口。这个接口允许ViewModel(视图模型)通知视图(View)当属性&#xff0…

计算机网络学习笔记-3.3以太网和局域网

以太网 以太网(Ethernet)是一种用于计算机网络的技术规范,广泛应用于局域网(LAN)的构建。它定义了如何在网络设备之间传输数据,并确保这些数据能够被可靠传送。以太网是目前最常见和最广泛使用的局域网技术…

聊一聊Elasticsearch的索引分片的恢复机制

1、什么是索引分片的恢复? 所谓索引分片的恢复指的是在某些条件下,索引分片丢失,ES会把某索引的分片复制一份来得到该分片副本的过程。 2、触发分片恢复的场景有哪些? 分片的分配 当集群中节点的数量发生变化,或者配…

LLaMA-Factory 上手即用教程

LLaMA-Factory 是一个高效的大型语言模型微调工具,支持多种模型和训练方法,包括预训练、监督微调、强化学习等,同时提供量化技术和实验监控,旨在提高训练速度和模型性能。 官方开源地址:https://github.com/hiyouga/L…

NVR接入录像回放平台EasyCVR视频融合平台加油站监控应用场景与实际功能

在现代社会中,加油站作为重要的能源供应点,面临着安全监管与风险管理的双重挑战。为应对这些问题,安防监控平台EasyCVR推出了一套全面的加油站监控方案。该方案结合了智能分析网关V4的先进识别技术和EasyCVR视频监控平台的强大监控功能&#…

信息与网络安全

1.对称密码体制的优缺点 优点:1.加密解密处理速度快 2.保密度高; 缺点:1.对称密码算法的密钥 分发过程复杂,所花代价高 2.多人通信时密钥组合的数量会出现爆炸性膨胀(所需密钥量大) 3.通信双方必须统一密钥…