当前位置: 首页>大数据>正文

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】

强化学习MAPPO论文复现

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第1张

行路有良伴就是捷径。

Good company on the road is the shortest cut.

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第2张

今天给大家分享的是,最近强化学习领域较火的一篇论文MAPPO的复现。

(今天这篇论文复现,需要有一定的强化学习知识背景,因时间有限,今天这次分享,主要把重点放在实验的问题汇总与解决,论文中有关的一些背景知识,改日慢慢为大家普及)

MAPPO是清华大学于超小姐姐等人的一篇有关多智能体的一种关于集中值函数PPO算法的变体文章。论文全称是“The Surprising Effectiveness of MAPPO in Cooperative, Multi-Agent Games”。此论文认为,PPO的策略裁剪机制非常适用于SMAC任务,并且在多智能体的不平稳环境中,IPPO的学习稳定性优于IAC(independent actor-critic)和IQL(independent q-learning),性能更好。也就是说,此论文认为将PPO算法扩展到多智能体环境中是十分有效的,并且总结了多智能体任务中非常有用的5个trick。大家感兴趣的可以去阅读下全文。好了,我们言归正传,回到今天的主线任务——论文实验复现及问题解决。

友情传送门:

MAPPO源码地址

https://github.com/marlbenchmark/on-policy

一、问题汇总与解决

(1)线程问题

运行时,出现线程创建失败

-u's'rOpenBLAS blas_thread_init: pthread_create failed for thread 8 of 40: Resource temporarily unavailableOpenBLAS blas_thread_init: RLIMIT_NPROC 4096 current, 253916 max
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第3张

查看CPU逻辑核数

 cat /proc/cpuinfo| grep "processor"| wc -l 
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第4张

python程序开头加入

import os
os.environ['OPENBLAS_NUM_THREADS'] = '1'

出现

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第5张

修改train_mpe_.sh,在后面加上--use_recurrent_policy

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第6张

重新运行即可。

(2)动态库GLIBC问题

运行train_smac.sh出现问题

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第7张

确定好StarCraftII的位置

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第8张

将星际争霸文件移动到root目录下,

sudo mv  /home/lab214/StarCraftII  /root/

运行星际争霸

python -m pysc2.bin.agent -map Simple64

出现问题报错

/root/StarCraftII/Versions/Base75689/SC2_x64: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /root/StarCraftII/Libs/libstdc++.so.6)
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第9张

查看系统中GLIBC版本

strings /lib64/libc.so.6 | grep GLIBC

发现最高才到GLIBC2.17

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第10张

背景补充:

Glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现…对于CentOS这样的系统,为了追求稳定性(这个值得商榷)往往各种库版本都很低,因此,更新glibc到2.18即可。

下载glibc2.18库

curl -O https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/glibc-2.18.tar.gz
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第11张

解压

tar -zxvf  glibc-2.18.tar.gz
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第12张

创建编译目录

cd glibc-2.18
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第13张

编译

cd build/
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第14张

安装

sudo make -j 
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第15张
sudo make install
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第16张

再次查看glibc

strings /lib64/libc.so.6 | grep GLIBC
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第17张

此时GLIBC2.18已经成功安装

二、运行测试及问题解决

运行星际争霸

python -m pysc2.bin.agent -map Simple64

发现,此时已经可以成功运行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第18张

作为玩家启动游戏

python -m pysc2.bin.play –map Simple64
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第19张

会随机出现一个地图

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第20张

找到回放存放的路径

cd ~/StarCraftII/
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第21张

在存有回放文件的文件夹下观看回放

python -m pysc2.bin.play -replay RandomAgent/Simple64_2021-04-21-03-13-36.SC2Replay
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第22张
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第23张

列出所有地图

python -m pysc2.bin.map_list
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第24张

继续运行星际争霸

./train_smac.sh

出现新的问题

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第25张
ValueError: Map 'SMAC_Maps/corridor.SC2Map' not found.

找到starcraft2的文件位置

cd onpolicy/envs/starcraft2

下载SMAC_Maps

git clone https://github.com/oxwhirl/smac.git
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第26张

进入SMAC_Maps

cd smac/smac/env/starcraft2/mps

发现SMAC_Maps

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第27张

将其剪切到onpolicy/envs/starcraft2文件夹下,再次运行

./train_smac.sh
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第28张

该错误仍然出现,这说明,我们需要将地图文件放置到星际争霸地图中去

首先,先浏览星际争霸地图文件,发现地图中没有SMAC_Maps

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第29张

根据显示出的地图路径,我们将下载好的SMAC_Maps移动到Maps下

sudo mv  /home/lab214/下载/on-policy-main/onpolicy/envs/starcraft2/SMAC_Maps  /root/StarCraftII/Maps/
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第30张

之后,再次运行测试

./train_smac.sh

此时,已经可以成功运行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第31张
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第32张

总共有1千万步需要更新

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第33张

大概训练九百多万步后,便会停止。

运行hanabi场景

chmod +x ./train_hanabi_forward.sh
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第34张

开始运行

./train_hanabi_forward.sh

出现bug为“check recurrent policy!”

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第35张

修改train_hanabi_forward.sh,在其后加上--use_recurrent_policy

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第36张

重新运行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第37张

仔细研究train_hanabi_forward.sh发现其中已经含有--use_recurrent_policy 猜想这可能是由于环境问题造成的

进入运行环境

source /etc/profile

再次运行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第38张

仍然是一样的报错,这说明不是运行环境问题。

继续探索,出现

IndentationError: unindent does not match any outer indentation level
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第39张

这说明出现了空格和Table混用的情况,需要修改空格。定位到157行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第40张

将elif对齐后,重新运行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第41张

发现仍有错误,将其删除

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第42张

重新运行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第43张

使用sudo执行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第44张

安装wandb

pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com wandb
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第45张

切换root用户

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第46张

进入root用户,再进入环境 运行发现

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第47张

于是改变hanabi_forward.sh的参数,将algo="mappo"改为algo="rmappo"

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第48张

再次执行

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第49张

出现cuda out of memory

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第50张

发现超出内存,在train_hanabi_forward.sh中修改训练次数和隐藏层大小,在这里我将--hidden_size改为了256

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第51张

再次运行

./train_hanabi_forward.sh

发现此时,终于可以成功运行!

全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第52张
全网良心论文复现!Centos 7.9 复现MAPPO出现的问题汇总【收藏干货】,第53张

对此,你有什么看法呢?如果你在操作过程中遇到了什么问题,或有什么想法和建议,在留言区留下你的足迹吧,与大家一起交流,一起进步~


https://www.xamrdz.com/bigdata/7g41900734.html

相关文章: