强化学习实战(九) 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()

对于上述代码,

参考

相关文章
|
6月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
4月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
578 11
|
6月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
328 20
|
6月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
241 16
|
6月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
509 8
|
7月前
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
840 16
|
7月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
533 10
|
8月前
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
2517 23

热门文章

最新文章