强化学习实战(九) Linux下配置星际争霸Ⅱ环境 |
您所在的位置:网站首页 › 暴雪积分能干什么 › 强化学习实战(九) Linux下配置星际争霸Ⅱ环境 |
文章目录
安装SMAC安装StarCraft II下载SMAC地图Py文件中进行测试参考
安装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因为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下即可。直接我们就可以进行阶段性的测试了: 测试Map是否放置成功: python -m smac.bin.map_list能够得到以下输出结果: 到此在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()对于上述代码, 参考 SMAC - StarCraft Multi-Agent Challenge使用Pytorch在StarCraft II 星际争霸2上实现多智能体强化学习算法 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |