【OS安装与使用】part6-ubuntu 22.04+CUDA 12.4运行MARL算法(多智能体强化学习)

news/2025/2/22 16:05:31

文章目录

  • 一、待解决问题
    • 1.1 问题描述
    • 1.2 解决方法
  • 二、方法详述
    • 2.1 必要说明
    • 2.2 应用步骤
      • 2.2.1 下载源码并安装
      • 2.2.2 安装缺失的依赖项
      • 2.2.3 训练+执行MAPPO算法实例
  • 三、疑问
  • 四、总结


一、待解决问题

1.1 问题描述

已配置好基础的运行环境,尝试运行MARL算法

1.2 解决方法

(1)基于论文源码,尝试实例运行MAPPO算法
论文链接:The Surprising Effectiveness of PPO in Cooperative, Multi-Agent Games
源码链接:This is the official implementation of Multi-Agent PPO (MAPPO).

二、方法详述

2.1 必要说明

硬件、软件运行环境配置如下:

操作系统:ubuntu 22.04 LTS
显卡型号:Geforce RTX 4060 Mobile
显卡驱动:nvidia-550.120
CUDA版本:CUDA 12.4
预装软件:Anaconda | pip3
python版本:3.11.11
Pytorch版本:torch2.6.0 | torchaudio 2.6.0 | torchvision 0.21.0
TensorFlow版本: 2.17.0 (base + GPU)

2.2 应用步骤

2.2.1 下载源码并安装

github下载源码到本地,进入到虚拟环境开始安装

conda create -n mappo python=3.11
conda activate mappo
cd code/on-policy-main/
pip install -e .

出现个提示,但还是成功安装:

在这里插入图片描述

2.2.2 安装缺失的依赖项

由于最后测试代码是在MPE环境中,先安装依赖,再跑测试代码

conda install seaborn
cd onpolicy/scripts/train_mpe_scripts/
chmod +x ./train_mpe_spread.sh 
./train_mpe_spread.sh 

预期之内,缺少模块 ‘wandb’ ,报错如下:
在这里插入图片描述过程当中还有许多模块存在缺失。

ModuleNotFoundError: No module named ‘wandb’
ModuleNotFoundError: No module named ‘absl’
ModuleNotFoundError: No module named ‘gym’
ModuleNotFoundError: No module named ‘tensorboardX’
ModuleNotFoundError: No module named ‘imageio’

没有咱就安装!但遵从一个原则:
🪶🪶🪶 能用conda install就用,不能再用 pip3 install ,使用 conda 安装包可以避免依赖冲突,确保环境的稳定性 🪶🪶🪶

pip3 install wandb
#安装了pytorch就没必要再安装
#pip3 install torch torchvision torchaudio
conda install absl-py
pip3 install gym
conda install tensorboardX
conda install imageio
./train_mpe_spread.sh 

2.2.3 训练+执行MAPPO算法实例

./train_mpe_spread.sh 

重新执行脚本,出现如下画面,简而言之,wandb 是一个机器学习实验跟踪和分析工具,可以线上共享结果和日志记录,可以看个人需求自行选择是否使用该工具。

在这里插入图片描述
暂时先选择 “3” ,开始 “ 漫长 ”的训练过程。

Scenario simple_spread Algo rmappo Exp check updates 0/6250 episodes, total num timesteps 3200/20000000, FPS 1838.
average episode rewards is -224.03669357299805


Scenario simple_spread Algo rmappo Exp check updates 6245/6250 episodes, total num timesteps 19987200/20000000, FPS 2333.
average episode rewards is -112.2522234916687

看起来像是总共跑了6250个episodes,不断优化奖励值reward,平均episode reward从初始的-224到最终的-112。

最终还有一些其它的数据统计,看样子是完美运行了,运行环境搭建 “ 大成功 ”!!!

wandb: Run history:
wandb:           actor_grad_norm ▆▅█▆▇▆█▇▇▅▂▄▄▃▃▃▂▃▂▄▃▃▂▄▃▃▅▂▃▁▆▃▃▄▃▃▄▃▃▃
wandb: agent0/individual_rewards ▁▂▄▅▆▇▇▇▇█▇▇██▇█▇█▇█████████████████████
wandb: agent1/individual_rewards ▁▄▅▅▅▆▆▆▆▆▇▆▇▇▇▇▇█▇▇▇█▇▇▇█▇▇██▇███████▇█
wandb: agent2/individual_rewards ▁▃▄▅▆▇▇▇▇▇▇▇▇▇▇▇█▇▇▇▇▇█▇█▇█▇█▇█████▇▇▇██
wandb:   average_episode_rewards ▁▃▄▄▅▆▇▇▇▇▇▇▇█▇▇▇████▇▇█▇▇▇▇████▇███████
wandb:          critic_grad_norm █▆▄▄▂▃▂▂▂▂▁▁▁▂▁▂▂▂▂▁▂▃▁▂▂▁▂▂▂▂▁▂▁▁▂▁▁▂▂▁
wandb:              dist_entropy █▇▇▇▅▅▄▅▅▄▄▄▄▄▄▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▁▁▁▁▁▁▁▁▁▁
wandb:               policy_loss █▄▄▁▃▄▁▁▂▄▂▂▁▂▂▃▃▁▂▁▃▂▂▁▂▂▁▂▂▁▂▂▃▁▂▂▃▁▃▃
wandb:                     ratio ▅▅▆▃█▃▄▄▆█▃▄▃▄▆▄▅▅▂▃▇▅▂▄▃▅▂▂▄▁▅▄▃▅▄▅▅▅▂▄
wandb:                value_loss █▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▁▁▂▁▁▁▂▂▁▁▁▁▁▁▂▂▁▁▁
wandb: 
wandb: Run summary:
wandb:           actor_grad_norm 0.22411
wandb: agent0/individual_rewards -1.17638
wandb: agent1/individual_rewards -1.19982
wandb: agent2/individual_rewards -1.19982
wandb:   average_episode_rewards -112.25222
wandb:          critic_grad_norm 0.03261
wandb:              dist_entropy 0.41139
wandb:               policy_loss -0.00934
wandb:                     ratio 0.99943
wandb:                value_loss 0.01067

同样的方式,运行另外一个脚本。

././train_mpe_reference.sh

得到反馈结果如下:

Scenario simple_reference Algo rmappo Exp check updates 0/937 episodes, total num timesteps 3200/3000000, FPS 3097.
average episode rewards is -68.8352644443512


Scenario simple_reference Algo rmappo Exp check updates 935/937 episodes, total num timesteps 2995200/3000000, FPS 4385.
average episode rewards is -9.302867949008942

并有其他训练结果数据反馈

wandb: Run history:
wandb:           actor_grad_norm ▁▃▅▅▅█▆▇▇▇█▆▇▇▇▆▆▄▆▆▇▅▆▆▆▅▇▅▅▇▇▆▅▅▅▃▆▆▄▄
wandb: agent0/individual_rewards ▁▄▃▃▃▄▅▇▇▇▇▇▇▇██████████████████████████
wandb: agent1/individual_rewards ▁▂▃▃▃▅▅▆▇▇██████████████████████████████
wandb:   average_episode_rewards ▁▄▃▃▄▅▆▆▆▇▇▇▇█▇▇████▇▇▇████████▇▇█▇█████
wandb:          critic_grad_norm █▂▅▂▂▂▃▂▂▁▁▁▂▁▁▁▁▁▂▁▁▁▁▂▂▁▂▁▂▁▂▂▁▁▁▂▂▁▁▁
wandb:              dist_entropy █▇▆▅▅▃▃▃▃▂▂▂▂▂▂▂▁▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
wandb:               policy_loss ▅▄▃▃▂▂▁▂▂▄▄▅▄▅▄▆▆▇▇▆▆▅▇▆▆▆█▆▆▇▆▇█▇▆▇▇▇█▇
wandb:                     ratio ▆▆▆▆▆▄▅▄▄▆▆▄▅▆▆▅▅▇▄▂▆▅▇▃▄▃▅█▄▄▆▄▄▄▅▇▁▂▅▆
wandb:                value_loss █▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
wandb: 
wandb: Run summary:
wandb:           actor_grad_norm 0.19407
wandb: agent0/individual_rewards -0.00368
wandb: agent1/individual_rewards -0.00423
wandb:   average_episode_rewards -9.30287
wandb:          critic_grad_norm 0.04375
wandb:              dist_entropy 0.54034
wandb:               policy_loss -0.01865
wandb:                     ratio 1.001
wandb:                value_loss 0.00241

(下一步,进入到MAPPO算法原理学习环节,可跳转至【动手学强化学习】篇,共同学习!!!)

💐💐💐 完结撒花 💐💐💐

三、疑问

暂无。

四、总结

  • 搭建一个学习环境,还是要以“目标导向”来实现,例如【OS安装与使用】这个系列就是为了运行MARL算法。学习的过程就像是 “搭积木” ,哪里缺失补充哪里,不要想着一口吃成一个胖子,一步一步解决当前存在的问题,脚踏实地。
  • 遇到问题,不要总想着依赖其它人或物,先自身寻找答案,耐心一些,仔细一些。先确定问题本质,如若是创新性的难题,无人遇到过,可直接找 “大同行” 交流;如若是大家都做过的事项,先从自身出发,寻找解决之道,尝试许多方法,依然无解过后,再另寻他见。

http://www.niftyadmin.cn/n/5862502.html

相关文章

VMware NSX 4.X Professional V2(2V0-41.24)题库

What is the VMware recommended way to deploy a virtual NSX Edge Node? A. Through the NSX UI B. Through automated or interactive mode using an ISO C. Through the vSphere Web Client D. Through the OVF command line tool 答案: A 解析:Install NSX Ed…

C++ 设计模式 - 策略模式

一:概述 策略模式是一种行为设计模式,来源于《设计模式:可复用面向对象软件的基础》一书。它定义了一组算法,并将它们封装成独立的对象。策略模式在标准模板库(STL)中被广泛使用。 二:策略模式…

NeurIPS-2024 | 具身智能如何理解空间关系?SpatialRGPT:视觉语言模型中的具象空间推理

作者:An-Chieh Cheng, Hongxu Yin, Yang Fu, Qiushan Guo, Ruihan Yang, Jan Kautz, Xiaolong Wang, Sifei Liu 单位:加州大学圣地亚哥分校,NVIDIA 标题:SpatialRGPT: Grounded Spatial Reasoning in Vision-Language Models 原…

5G-A的尔滨故事,冰雪下的科技春潮

刚刚结束的第九届亚冬会中,黑科技5G-A达成了刷屏级的效果。这也是5G-A首次大规模服务于国际大型体育赛事。 一场冰雪盛会之后,5G-A向何处去?这个黑科技的能力,将如何投放给大众消费者和企业?这是值得我们进一步思考的话…

GlusterFS卷管理实战指南:从扩展卷到自我修复,全面掌握高效运维技巧

#作者:闫乾苓 文章目录 1 扩展卷2 收缩卷3 更换故障brick3.1 更换纯分布式中的brick3.2 更换复制/分布式复制卷中的brick 4 重新平衡卷4.1 重新平衡卷以修复布局变化4.2 重新平衡卷以修复布局并迁移现有数据4.3 显示重新平衡操作的状态4.4 停止正在进行的重新平衡操…

Ae:导入 3D 模型

在 After Effects 24.1 及更高版本中,可以直接将 3D 模型 3D Model导入到项目,并将其与其他 2D 和 3D 图层一起放入合成中。 3D 模型文件主要是通过描述几何结构、材质和纹理、动画、光源与摄像机、场景结构、物理属性(某些文件格式&#xff…

LangChain:AI大模型开发与分布式系统设计

文章目录 第一部分:大模型与 LangChain 基础1.1 大语言模型概述1.2 LangChain 基础 第二部分:模型初始化与调用2.1 自定义大模型架构 第三部分:高级模型设计与优化3.1 提示工程与模型调优3.2 高效处理大规模数据 第四部分:分布式系…