IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 多智能体MAPPO代码环境配置以及代码讲解 -> 正文阅读

[人工智能]多智能体MAPPO代码环境配置以及代码讲解

MAPPO代码环境配置

MAPPO是2021年一篇将PPO算法扩展至多智能体的论文,其论文链接地址为:https://arxiv.org/abs/2103.01955
对应的官方代码链接为https://github.com/marlbenchmark/on-policy

代码文件夹内容讲解

所有核心代码都位于 onpolicy 文件夹中。 algorithms/子文件夹包含 MAPPO 的特定于算法的代码。

 envs/ 文件夹包含 MPE、SMAC 和 Hanabi 的环境的实现。

 用于执行训练部署和策略更新的代码包含在 runner/ 文件夹中 - 每个环境都有一个runner。

 可以在 scripts/ 文件夹中找到用于使用默认超参数进行训练的可执行脚本。 这些文件按以下方式命名:train_algo_environment.sh。 在每个文件中,映射名称(在 SMAC 和 MPE 的情况下)可以更改。

 可以在 scripts/train/ 文件夹中找到每个环境的 Python 训练脚本。

 config.py 文件包含相关的超参数和环境设置。

配置开始

本配置在Ubuntu 16/18/20,可以在CPUGPU上跑程序,本文按照GPU版本配置环境

  1. 创建虚拟环境: conda create -n MAPPO python==3.6.1
  2. 激活环境: conda activate MAPPO
  3. 安装GPU版本的pytorch:torch1.5.1+cuda10.1以及torchision0.6.1+cuda10.1
  4. 下载MAPPO代码后进入on-poilcy文件夹:cd on-policy
  5. 安装本环境:pip install -e
  6. 按照requirement.txt文件选择性安装包,其中tensorboard如果用gpu版本的话:安装tensorboard-gpu2.0.0,然后安装tensorboardX:pip install tensorboardX=2.0.0,若用cpu版本的tensorboard可以pip install tensorboard==1.14
  7. 最后一步:安装seaborn:pip install seaborn
  8. 三步进行运行程序:
  9. cd onpolicy/scripts
  10. chmod +x ./train_mpe.sh
  11. ./train_mpe.sh

配置完成后的一些常见问题

1.出现ImportError: cannot import name 'get_backend’
解决方法:tensorflow版本问题:sudo pip install tensorflow --upgrade,如果还不行查看:https://stackoverflow.com/questions/54574591/importerror-cannot-import-name-backend以及https://stackoverflow.com/questions/52979322/matplotlib-3-0-0-cannot-import-name-get-backend-from-matplotlib
2.出现TypeError: cannot assign ‘torch.FloatTensor’ as parameter ‘stddev’ (torch.nn.Parameter or None expected)
解决方法:代码的错误,将"onpolicy/algorithms/utils/popart.py"中的 63行代码

self.stddev = (self.mean_sq - self.mean ** 2).sqrt().clamp(min=1e-4)
self.weight = self.weight * old_stddev / self.stddev
self.bias = (old_stddev * self.bias + old_mean - self.mean) / self.stddev

改为:

self.stddev = nn.Parameter((self.mean_sq - self.mean ** 2).sqrt().clamp(min=1e-4))
self.weight = nn.Parameter(self.weight * old_stddev / self.stddev)
self.bias = nn.Parameter((old_stddev * self.bias + old_mean - self.mean) / self.stddev)

最后就可以运行程序了!

小技巧

为了更好的控制代码,能够便利的debug需要对train_mpe.py做些更改:需要在main()中更改

if __name__ == "__main__":
    if len(sys.argv[1:]) == 0:
        argv = ['--use_valuenorm', '--use_popart', '--env_name', 'MPE', '--algorithm_name', 'rmappo',
                '--experiment_name', 'check', '--scenario_name', 'simple_spread', '--num_agents', '3',
                '--num_landmarks', '3', '--seed', '1', '--n_training_threads', '1', '--n_rollout_threads',
                '64', '--num_mini_batch', '1', '--episode_length', '25', '--num_env_steps', '2000000',
                '--ppo_epoch', '10', '--use_ReLU', '--gain', '0.01', '--lr', '7e-4', '--critic_lr',
                '7e-4', '--wandb_name', 'zoeyuchao', '--user_name', 'zoeyuchao', '--use_wandb', 'False']
    else:
        argv = sys.argv[1:]
        print(argv)
    main(argv)

这样就能很好的实现debug了!

现在我还在学MAPPO,若还有好技巧会在这篇文章分享,需要MAPPO后期知识的小同学可以关注我哦!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:56:48  更:2021-11-24 07:57:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:36:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码