多智能体深度确定性策略梯度(MADDPG)算法复现教程

复现软硬件:

Ubunru20.04,Python 3.8.10, torch 2.4.1, gym 0.10.5,VScode

论文:

http://arxiv.org/pdf/1706.02275

 

环境:

GitHub - openai/multiagent-particle-envs: Code for a multi-agent particle environment used in the paper "Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments"

核心代码(方法):

GitHub - philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradients: A Pytorch implementation of the multi agent deep deterministic policy gradients (MADDPG) algorithm

具体步骤:

step1:启动终端,建立工作空间

mkdir maddpg_ws

step2:克隆环境

cd maddpg_ws
git clone https://github.com/openai/multiagent-particle-envs.git

step3:安装并激活虚拟环境

cd maddpg_ws
cd multiagent-particle-envs
python3 -m venv maddpg-env
source maddpg-env/bin/activate

 激活成功后会有如上图所示的显示,在命令行之前多了(maddpg_env),则表示激活成功。
备注:这一部操作是为了在虚拟环境下去安装所需的环境、功能包、工具等,与系统的配置隔离开,避免影响系统的配置。

step4:安装所需的功能包和工具(在第三部的基础上)

pip3 install gym==0.10.5 numpy==1.24.4 torch==2.4.1 matplotlib
# matplotlib 为绘图工具,后期输出结果要用的

step5:检查上述功能包和工具是否安装成功

pip3 list

在输出的列表中查看step4所安装的功能包和工具是否与要求的版本对应上 。

step6:安装MPE环境(在刚才的终端中继续运行)

pip3 install -e .

step7:进入VScode进行代码编辑

cd maddpg_ws
cd multiagent-particle-envs
code .

step8:为VScode选择Python解释器

在VS Code中配置Python解释器
  • Ctrl + Shift + P,然后选择“Python: Select Interpreter”。
  • 选择刚刚创建的虚拟环境中的Python解释器。

step9:配置json文件

launch.json文件用于配置调试参数,以便在VS Code中轻松运行和调试Python脚本。

创建和配置launch.json
  1. 打开VS Code中的调试视图: 点击VS Code左侧栏的“调试”图标。

  1. 创建launch.json文件: 点击“创建一个launch.json文件”链接。VS Code会引导您创建一个配置文件。选择“Python”作为环境。

  2. 编辑launch.json: 创建好文件后,添加或编辑以下配置项:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [   
        {
            "name": "Python 调试程序: 当前文件",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "env": {
                "PYTHONPATH": "${workspaceFolder}"
            },
        }
    ]
}

Step10:在multiagent-particle-envs文件夹下新建一个maddpg_torch.py文件来编辑代码

上述借鉴的maddpg算法实现的代码:GitHub - philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradients: A Pytorch implementation of the multi agent deep deterministic policy gradients (MADDPG) algorithmA Pytorch implementation of the multi agent deep deterministic policy gradients (MADDPG) algorithm - philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradientsicon-default.png?t=O83Ahttps://github.com/philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradients
将代码切分为了不同部分,并且代码中并为包含结果可视化的代码,于是将修改后的代码直接给出,该代码在原代码的基础上进行了修改,并对结果进行了可视化,可直接复制使用,整体代码如下:
import os
import numpy as np
from sympy import evaluate
import torch as T
import torch.nn as nn
import torch.nn.functional as F # torch.nn.function已不再适用
import torch.optim as optim
from make_env import make_env
from multiagent import scenario
from collections import namedtuple
import matplotlib.pyplot as plt # 绘制奖励曲线的包
from matplotlib.animation import FuncAni

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

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

相关文章

51c大模型~合集42

我自己的原文哦~ https://blog.51cto.com/whaosoft/11859244 #猎户座 「草莓」即将上线,OpenAI新旗舰大模型曝光,代号「猎户座」 ChatGPT 要进化了? 本月初,OpenAI 创始人、CEO 山姆・奥特曼突然在 X 上发了一张照片&#xff0…

探索Copier:Python项目模板的革命者

文章目录 **探索Copier:Python项目模板的革命者**1. 背景介绍:为何Copier成为新宠?2. Copier是什么?3. 如何安装Copier?4. 简单库函数使用方法4.1 创建模板4.2 从Git URL创建项目4.3 使用快捷方式4.4 动态替换文本4.5 …

系统掌握大语言模型提示词 - 从理论到实践

以下是我目前的一些主要个人标签: 6 年多头部大厂软件开发经验;1 年多 AI 业务应用经验,拥有丰富的业务提示词调优经验和模型微调经验。信仰 AGI,已经将 AI 通过自定义 Chatbot /搭建 Agent 融合到我的工作流中。头部大厂技术大学…

前端学习资源合集,附链接

前言 本文是前端开发初学资源 初步 1. 三件套htmlcssjavascript 前端Web开发HTML5CSS3移动web视频教程,前端web入门首选黑马程序员_哔哩哔哩_bilibili 黑马程序员前端JavaScript入门到精通全套视频教程,javascript核心进阶ES6语法、API、js高级等基…

全同态加密基于多项式环计算的图解

全同态加密方案提供了一种惊人的能力 —— 能够在不知道数据具体内容的情况下对数据进行计算。这使得你可以在保持潜在敏感源数据私密的同时,得出问题的答案。 这篇文章的整体结构包括多项式环相关的数学介绍,基于多项式环的加密和解密是如何工作的&…

【Window主机访问Ubuntu从机——Xrdp配置与使用】

使用Xrdp在Window环境下远程桌面访问Ubuntu主机 文章目录 Ubuntu安装图形化界面Ubuntu安装Xrdp通过网线连接两台主机Window主机有线连接配置Ubuntu从机设置测试有线连接 Window主机打开远程桌面功能参考文章总结 Ubuntu安装图形化界面 sudo apt update sudo apt upgrade sudo …

stable-diffusion-3 ,每天免费试用

https://huggingface.co/spaces/stabilityai/stable-diffusion-3-mediumhttps://huggingface.co/spaces/stabilityai/stable-diffusion-3-medium官方space,童叟无欺,科学试用。 an image of a girl with white hair, in the style of ross tran, light …

datastage在升级版本到11.7之后,部分在11.3上正常执行的SP报错SQLSTATE = 22007: 本机错误代码 = -180

在升级版本到11.7之后,部分在11.3上正常执行的SP开始报错,报的SQL错误是时间参数问题,但是一样的SP可以直接call sp执行,也可以手动调用作业执行,只有设置定时调度时作业会报错, CALLXXX.XXX(1,CURRENT TIM…

xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer

打开 .sh 文件所在的终端窗口,执行终端命令:sh 文件名.sh,出现如下错误: 解决办法:

如何修改npm包

前言 开发中遇到一个问题,配置 Element Plus 自定义主题时,添加了 ElementPlusResolver({ importStyle: "sass" }) 后,控制台出现报错,这是因为 Dart Sass 2.0 不再支持使用 !global 来声明新变量,虽然当前…

RabbitMQ队列详细属性(重要)

RabbitMQ队列详细属性 1、队列的属性介绍1.1、Type:队列类型1.2、Name:队列名称1.3、Durability:声明队列是否持久化1.4、Auto delete: 是否自动删除1.5、Exclusive:1.6、Arguments:队列的其他属性&#xf…

通过Python 调整Excel行高、列宽

在Excel中,默认的行高和列宽可能不足以完全显示某些单元格中的内容,特别是当内容较长时。通过调整行高和列宽,可以确保所有数据都能完整显示,避免内容被截断。合理的行高和列宽可以使表格看起来更加整洁和专业,尤其是在…

Qt学习笔记(四)多线程

系列文章目录 Qt开发笔记(一)Qt的基础知识及环境编译(泰山派) Qt学习笔记(二)Qt 信号与槽 Qt学习笔记(三)网络编程 Qt学习笔记(四)多线程 文章目录 系列文章…

用 Python 从零开始创建神经网络(三):添加层级(Adding Layers)

添加层级(Adding Layers) 引言1. Training Data2. Dense Layer Class 引言 我们构建的神经网络变得越来越受人尊敬,但目前我们只有一层。当神经网络具有两层或更多隐藏层时,它们变成了“深度”网络。目前我们只有一层&#xff0c…

如何在jupyter notebook切换python环境

目录 参考链接 首先确保conda已经正常安装 conda --version 或者conda -V 以下请将“myenv”替换成自己的命名!!! 1-查看虚拟环境目录 conda env list 2-创建虚拟环境命令 conda create -n myenv 或者 conda create --name myenv 3-激活虚拟环…

C#从入门到放弃

C#和.NET的区别 C# C#是一个编程语言 .NET .NET是一个在window下创建程序的框架 .NET框架不仅局限于C#,它还可以支持很多语言 .NET包括了2个组件,一个叫CLR(通用语言运行时),另一个是用来构建程序的类库 CLR 用C写一个程序,在一台8688的机器…

STM32 低功耗模式详解

目录 一、什么是低功耗 二、低功耗的核心思想 三、STM32的3种低功耗模式 1、睡眠模式 (Sleep Mode) 2、停止模式 (Stop Mode) 3、 待机模式 (Standby Mode) 四、相关电源管理寄存器 1、PWR_CR (Power Control Register, 电源控制寄存器) 2、PWR_CSR (Power Control/St…

数位DP学习

数位 DP - OI Wiki 引入 主要变量及函数 变量: L, R: 所求区间边界 limit:边界限制,主要在记忆化搜索里用 len:所求数的位数 pos:当前所求位置 lead: 前导零 DP[N][M] :第一维是当前的pos&…

WP网站如何增加文章/页面的自定义模板

通过Wordpress我们后台在发布文章或者页面的时候其实可以看到有些主题 他有选择使用的页面模板,可以自定义模板,但是有些主题却没有选择主题这个功能,那这个自定义模板的功能是如何实现的呢?以下分两种情况:Page页面和…

Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式

此去经年,再难同游 —— 24.11.11 一、什么是设计模式 设计模式是一种编程套路,可以极大的方便程序的开发最常见、最经典的设计模式,就是我们所学习的面向对象了。 除了面向对象外,在编程中也有很多既定的套路可以方便开发,我们称之为设计模…