强化学习实战(九) Linux下配置星际争霸Ⅱ环境

简介: 强化学习实战(九) Linux下配置星际争霸Ⅱ环境

安装SMAC

  SMAC是基于暴雪公司星际争霸Ⅱ做的一个多智能体环境,官方GitHub链接为:https://github.com/oxwhirl/smac

  安装之前更新一下pip(不更新的话会报一个错误):

ERROR: Command errored out with exit status 128: git clone -q https://github.com/oxwhirl/smac.git /tmp/pip-req-build-tz6uj500 Check the logs for full command output.

  更新命令如下:

pip install --upgrade pip

  更新之后,我的pip版本升到了21.1.2版本:

  安装SAMC的话我们直接采用以下命令即可:

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

安装StarCraft II

  因为SMAC是基于星际争霸游戏引擎的,所以我们还需要安装StarCraft II,官方指定的版本为SC2.4.6.2.69232,并且不同版本之间的算法性能测试不一样。相关包的下载可以在如下链接找到:https://github.com/Blizzard/s2client-proto#downloads,这里我采用4.6.2这个和官方一样的版本进行安装。直接进上面这个链接去选中下图所示的4.6.2即可:

  下载好了之后我们能够得到如下这样一个压缩包:

  我们需要将这个zip文件解压:

unzip SC2.4.6.2.69232.zip

  解压的过程需要密码,密码为:iagreetotheeula

  解压后文件默认路径为~/StarCraftII/,如果放在别的路径,需要更改环境变量SC2PATH,所以解压之后我把解压的文件拷贝到了~/目录下面。

下载SMAC地图

  我们需要下载地图,也就是游戏的地图并将其放在之前解压的StarCraft II文件下面的Maps目录下面。下载链接为:https://github.com/oxwhirl/smac/releases/download/v0.1-beta1/SMAC_Maps.zip。解压之后得到两个文件夹:

  将文件夹直接放在$SC2PATH/Maps下即可。直接我们就可以进行阶段性的测试了:

  1. 测试Map是否放置成功:
python -m smac.bin.map_list
• 1

  1. 测试smac和它的Map是否配置成功:
python -m smac.examples.random_agents
• 1

  能够得到以下输出结果:

  到此在Linux下配置星际争霸2的环境就差不多了。

Py文件中进行测试

  如果想要Debug初步了解这个环境的话,可以采用如下代码:

from smac.env import StarCraft2Env
import numpy as np
def main():
    env = StarCraft2Env(map_name="8m")
    env_info = env.get_env_info()
    n_actions = env_info["n_actions"] # 获取动作维度
    n_agents = env_info["n_agents"] # 存在多少个智能体
    n_episodes = 10
    for e in range(n_episodes):
        env.reset()
        terminated = False
        episode_reward = 0
        while not terminated:
            obs = env.get_obs()
            state = env.get_state()
            actions = []
            for agent_id in range(n_agents): # 对于每个智能体遍历循环
                avail_actions = env.get_avail_agent_actions(agent_id)
                avail_actions_ind = np.nonzero(avail_actions)[0]
                action = np.random.choice(avail_actions_ind)
                actions.append(action)
            reward, terminated, _ = env.step(actions)
            episode_reward += reward
        print("Total reward in episode {} = {}".format(e, episode_reward))
    env.close()
if __name__ == "__main__":
  main()

对于上述代码,

参考

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
19天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
24天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
31 4
|
2月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
372 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
63 9
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
41 5
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
80 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
39 3
|
2月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
70 6
|
1月前
|
Linux UED iOS开发
|
2月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
66 2

热门文章

最新文章