强化学习实战(九) 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 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
目录
打赏
0
0
0
0
25
分享
相关文章
Linux云服务器如何搭建LNMP环境
LNMP环境是Linux系统中常用的Web服务架构,由Linux、Nginx、MySQL/MariaDB和PHP组成,适用于高效托管动态网站。本文以CentOS 7为例,详细介绍了LNMP环境的搭建步骤,包括Nginx、MariaDB和PHP的安装与配置,以及最终通过创建`index.php`文件验证环境是否成功部署。具体操作涵盖配置YUM仓库、安装服务、编辑配置文件、启动服务等关键步骤,确保用户能够顺利搭建并运行LNMP环境。
43 1
Linux云服务器如何搭建LNMP环境
|
21天前
|
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
47 5
|
22天前
|
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
49 13
|
3月前
|
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
331 7
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
896 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
169 4
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
117 9
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
317 3

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等