WINDOWS系统下PYMARL强化学习框架和SMAC环境安装及测试问题

这篇具有很好参考价值的文章主要介绍了WINDOWS系统下PYMARL强化学习框架和SMAC环境安装及测试问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本文章主要为了来记录我在学习复现多智能体强化学习算法中遇到的问题。首先我看的是基于值分解的强化学习算法,VDN,QMIX,QTRANS。为了更好理解和学习算法,我试着跑了基于PYMARL框架和SMAC环境中的一些算法,中间遇到不少问题,同时代码能力也不太好,所以记录下来,方便查看和学习。

SMAC环境安装

SMAC是WhiRL基于暴雪星际争霸II RTS游戏的协作多智能体强化学习(MARL)领域的研究环境。SMAC利用暴雪的StarCraft II机器学习API和DeepMind的PySC2为自主代理提供了一个方便的界面,以便与StarCraft II进行交互,获取观察和执行操作。与PySC2不同,SMAC专注于分散的微观管理场景,其中游戏的每个单元都由单独的RL代理控制。

1.SMAC安装

SMAC官方地址

安装前要保证有anaconda和pycharm等环境,smac环境运行也需要各种包的支持,具体安装要求看官方的文件

官方安装SMAC的方式在readme文件中有详细解释,可以自行查阅。(嫌麻烦可以看我这个,哈哈哈)首先我们需要下载git工具,记得把git加入环境变量,然后再进行操作,(好像也可以把文件放到本地再安装,但是我好像有问题,没成功)

  1. 运用如下命令行直接安装:

    pip install git+https://github.com/oxwhirl/smac.git

    这个好像安装有点慢,我也没弄成

  2. 用git将文件克隆到本地再安装

    git clone https://github.com/oxwhirl/smac.git
    pip install -e smac/

除了安装,smac环境还支持扩展,具体的东西我也没仔细看。

2.Installing StarCraft

在Windows系统下,直接去官网安装星际争霸2就可以了,记得把游戏加入环境变量中就可以。在Linux的系统下就需要查看文档自行解决啦。

3.SMAC maps

SMAC由许多带有预配置地图的战斗场景组成。在使用 SMAC 之前,需要将这些地图下载到星际争霸 II 的地图目录中。

下载 SMAC 地图并将其解压缩到您的 $SC 2PATH/地图目录。如果您通过 git 安装了 SMAC,只需将SMAC_Maps目录从 smac/env/starcraft2/maps/ 复制到 $SC 2PATH/Maps 目录中即可(如果没有Maps目录需要自己创建一个)。地图下载SMAC maps

下载成功后,可以通过如下命令查看地图列表(在smac目录下)

python -m smac.bin.map_list

查看的结果应该是这样:
WINDOWS系统下PYMARL强化学习框架和SMAC环境安装及测试问题
maplist中依次是地图名字,智能体数,敌方数量,以及对战最长的时间步

4.Testing SMAC

安装完smac后,需要进行测试确保安装成功,测试命令如下:

python -m smac.examples.random_agents

结果应该是能把星际争霸客户端起起来,并生成如下的结果:

WINDOWS系统下PYMARL强化学习框架和SMAC环境安装及测试问题
做到了这里基本的星际争霸强化学习环境就搭好了,后面就是搭进行训练的框架

PYMARL框架实现和调试

GitHub链接PYMARL框架

PyMARL is WhiRL’s framework for deep multi-agent reinforcement learning and includes implementations of the following algorithms:
QMIX: QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning
COMA: Counterfactual Multi-Agent Policy Gradients
VDN: Value-Decomposition Networks For Cooperative Multi-Agent Learning
IQL: Independent Q-Learning
QTRAN: QTRAN: Learning to Factorize with Transformation for Cooperative Multi-Agent Reinforcement Learning
PyMARL is written in PyTorch and uses SMAC as its environment.

1.创建PYMARL conda 环境

conda create _n pymarl python==3.7 -y
conda activate pymarl

安装需要的包,pymarl的代码中有一个requirements.txt的文件详细说明了各个包的版本,直接安装就好了。(注意要进入pymarl所在的路径)自己下的话,就不能保证包的版本等问题。

pip install -r requirements.txt

装好需要的各种包之后就可以开始调试并运行代码了。

2.调试PYMARL代码

运行pymarl上的实验可以在anaconda的cmd里用以下的默认代码(如果不是在pymarl的路径下,main.py要加上文件所在路径)

python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=2s3z

不出意外的话,就会出意外了,基本是跑不起来。首先的一个问题是yaml文件加载的问题,可能由于这个环境写的时间比较久,yaml需要换其他的用法,具体要上网查找。在main文件中加载default.yaml文件需要用safe_load函数,问题就是f的输入格式和加载格式不一致需要在字符串和字典转换

config_dict = yaml.safe_load(f)

解决这个问题之后应该是能把config导入程序中,但是依然有错误。在sacred包中,需要在环境中找到这个包,并进入dependencies.py文件,在C:\Users.conda\envs\pymarl\Lib\site-packages\sacred\dependencies.py下。需要在第422行加上

os.environ[“GIT_PYTHON_REFRESH”] = “quiet”
这里引号格式会变,需要自己调整一下

原因好像是git但是也没搞清楚具体问题,反正git也不影响框架,所以没有管它。
WINDOWS系统下PYMARL强化学习框架和SMAC环境安装及测试问题
弄完这两步应该是没有太大的问题了,应该能起来客户端,并把实验跑起来了。但是用命令行,我不是很习惯,在windows下是可以在pycharm里跑起来的,只需要把参数的输入位置改一改就好

params = deepcopy([ ‘main.py’,
‘–config=qmix’,
‘–env-config=sc2’,
‘with’,
‘env_args.map_name=2s3z’
])

在命令中需要注意with是一个单独的参数,在with后可以调整你想要的各种参数

3. 运行pymarl实验并保存和查看回放

在运行实验时,如果对参数没有改变,实验运行的就是默认的实验参数,对实验的算法和环境都没有改变,具体的实验参数配置在src/config文件配置里。–config配置的文件在src/config/algs中是对算法的配置,–env_args相对应的配置文件在src/config/envs中。在algs中可以选用不同的算法,并改变算法的参数配置,在envs中可以选择不同的实验环境和不同的奖励配置。
重点的参数解释:

  • t_max环境运行的总步数
  • save_model是否保存模型,save_model_interval保存模型间隔
  • local_results_path模型结果存放位置,checkpoint_path模型加载位置
  • save_replay保存加载后的模型测试结果回放

保存模型

  • 可以通过设置 save_model = True(默认情况下设置为 False)将学习的模型保存到磁盘。
  • 保存模型的频率可以使用save_model_interval配置进行调整。
  • 需要设置 local_results_path ,模型将保存在设置的结果目录中名为 models 的文件夹下。
  • 整个实验保存的模型包含了每次运行对应的目录,每个模型都位于一个文件夹中,对应于自开始学习过程以来经过的时间步长数。

加载模型

  • 通过checkpoint_path参数的配置,程序会加载path下的模型,会接着对应的时间步继续学习。

观看StarCraft2的回放

save_replay选项允许保存使用checkpoint_path加载的模型的回放。成功加载模型后,将在测试模式下运行test_nepisode集数,并在 .SC2重播文件保存在星际争霸II的重播目录中。如果希望保存重播,请确保使用runner=episode。保存的重播文件的名称以给定的 env_args.save_replay_prefix 开头(如果为空,则为 map_name),后跟当前时间戳,如 3m_2022-11-10-08-57-39

总结

基本上完成上面的步骤能把pymarl的框架跑起来了,后面就是仔细了解pymarl框架的代码了,在这个过程中也参考了不少博主和网上的资料就不一一列举了,后面会继续更新PYMARL的框架结构和对算法的改进实验,以及连续的多智能体强化学习算法epymarl框架。文章来源地址https://www.toymoban.com/news/detail-420143.html

到了这里,关于WINDOWS系统下PYMARL强化学习框架和SMAC环境安装及测试问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows10系统PYthon深度学习环境安装(Anaconda3、PYthon3.10、CUDA11.6、CUDDN10、pytorch、tensorflow,Pycharm)

    一、 總體说明 1、說明:總體採用https://blog.csdn.net/zhizhuxy999/article/details/90442600方法,部分步驟由於版本變化,進行了調整。 2、基本概念 编程语言/编译器:Python。Python的特点是“用最少的代码干最多的事”。Python 2即在2020年停止更新,所以现在学习Python 3是最好的选择。 P

    2023年04月18日
    浏览(85)
  • Anaconda配置强化学习环境

    安装git可以方便进行项目管理或者克隆github上的源码,下面介绍win10和ubuntu系统中git的安装步骤。 win10 1.在官网下载Git-2.38.1-64-bit.exe,打开文件,按照操作进行安装配置 2.git安装完成后,找到git安装路径中bin的位置,我的是D:softwareGitbin 3.再找到git安装路径中git-core的位置,

    2024年02月05日
    浏览(42)
  • Windows安装系统+配置开发环境

    本篇适用于:笔记本电脑,组装台式机安装WIN10(WIN11)系统,并配置java、python、web开发环境 准备一个至少有5G空间的空白U盘(注意资料提前备份,写入系统后U盘会被清空) 去微软官网,下载WIN10的写入工具,下载完的文件叫Media Creation Tool+版本号.exe 微软官方网站 运行WIN

    2024年01月23日
    浏览(57)
  • 16. 蒙特卡洛强化学习基本概念与算法框架

    蒙特卡洛强化学习(简称MC强化学习)是一种 无模型 强化学习算法,该算法无需知道马尔科夫决策环境模型,即不需要提前获得立即回报期望矩阵R(维度为(nS,nA))、状态转移概率数组P(维度为(nA,nS,nS)),而是通过与环境的反复交互,使用统计学方法,利用交互数据直接进行

    2024年01月21日
    浏览(48)
  • HarmonyOS学习--初次下载安装和配置环境(windows)

    运行环境要求: 为保证DevEco Studio正常运行,建议电脑配置满足如下要求: 操作系统:Windows10 64位、Windows11 64位 内存:8GB及以上 硬盘:100GB及以上 分辨率:1280*800像素及以上 下载和安装DevEco Studio: 进入HUAWEI DevEco Studio产品页,单击下载列表右侧的下载按钮,下载DevEco Studi

    2024年01月24日
    浏览(55)
  • 「网页开发|环境安装」Windows系统下安装node.js

    本文主要介绍在windows系统下的node.js环境安装。windows系统的Node.js安装过程与其他普通软件的安装类似,本文主要给刚入门的伙伴一个参考。 node.js 是一个 javascript 运行环境,是编写 javascript 代码需要安装的环境(为了运行代码) 所以如果开发过程中需要运行js代码,就需要安

    2024年02月12日
    浏览(60)
  • 强化学习环境升级 - 从gym到Gymnasium

    作为强化学习最常用的工具,gym一直在不停地升级和折腾,比如gym[atari]变成需要要安装接受协议的包啦,atari环境不支持Windows环境啦之类的,另外比较大的变化就是2021年接口从gym库变成了gymnasium库。让大量的讲强化学习的书中介绍环境的部分变得需要跟进升级了。 不过,不

    2024年02月08日
    浏览(50)
  • Gazebo仿真环境下的强化学习实现

    主体源码参照《Goal-Driven Autonomous Exploration Through Deep Reinforcement Learning》 笔者采用其强化学习方法,但是对于仿真环境以及机器人模型仍然用自己的包,源码中采用了与论文强相关的用法 2.1 环境 源码: 强化学习中环境用于产生状态输入,并通过智能体的动作产生新的状态,

    2024年02月10日
    浏览(46)
  • JDK21下载+安装+环境配置教程(Windows系统)

    前言:甲骨文公司与2023.9发布JDK21,JDK21将是一个长期支持(LTS)版本,JDK20目前可以从官网下载使用。 1,搜索Oracle官网找到JDK21 Java Downloads | Oracle 2,切换Windows系统,然后点击下载(初学者下载X64 Installer就可) 3,下载完成后点击安装向导(本贴选择放在D盘目录下)  4,配置

    2024年02月08日
    浏览(67)
  • Vue框架学习记录之环境安装与第一个Vue项目

    首先是Node.js的安装,安装十分简单,只需要去官网下载安装包后,一路next即可。 Node.js是一个开源的、跨平台的 JavaScript 运行时环境 下载地址,有两个版本,一个是推荐的,一个是最新的,现在博主学习的话就直接安装最新的即可。 验证是否安装成功,只需要在cmd窗口中输

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包