【加入星际2征程】DeepMind星际争霸2开源机器学习平台入门

2017 年 9 月 5 日 新智元

  新智元编译  

来源:chris-chris.ai

作者:Chris Song

编译:文强


【新智元导读】DeepMind此前开源了《星际争霸2》机器学习训练平台,这个平台对于state-of-the-art的深度强化学习算法来说是极好的测试平台。希望下面这份教程能帮你更快更好地上手。



DeepMind 之前开源了《星际争霸2》的深度强化学习平台,这是个很好的训练环境,学起来也很有趣。下面是一份有关设置环境和训练模型的教程,基于Mac环境。我们会跑一遍训练脚本,使用Deep Q-Network解决CollectMineralShards这个mini-game。享受学习吧~


在开始之前,你需要准备好:


  • IntelliJ ( or PyCharm)

  • Python3

  • StarCraft II (even Starter Pack is working)

  • GIT


先上结果:




这篇教程的结构:


1)安装pysc2

2)Star&Fork pysc2样本

3)克隆pysc2-examples库

4)下载《星际争霸2》地图

5)安装Tensorflow和baseline库

6)用IntelliJ(或PyCharm)打开项目

7)运行训练脚本

8)运行预训练模型


接下来,我们就开始吧!



1)安装pysc2


首先,我们要安装pysc2库。


在终端上输入命令就好了(由于我们使用的是python3,必须输入pip3)。



pip3 install pysc2


然后,你的pysc2就安装好了。



2)Star & Fork pysc2样本


接下来,打开下面的Github链接:


https://github.com/chris-chris/pysc2-examples


这是最重要的一步!记得给我的库加星哦☺



Fork也来一下(译注:现在Star和Fork的数量都有所增长,Star已经超过150啦)~




3)克隆pysc2样本库


简单一行命令就能克隆这个库了


git clone https://github.com/chris-chris/pysc2-examples

然后你就能在计算机上看见“pysc2-examples”的目录了。



4)下载《星际争霸2》的任务地图


在运行训练脚本之前,我们必须下载mini-game的游戏地图,并将这些地图保存到星际争霸2D的地图目录StarCraft II/Maps


下载游戏地图https://github.com/deepmind/pysc2/releases/download/v1.0/mini_games.zip


我是Mac用户,因此我的星际争霸2地图位置是


/Applications/StarCraft II/Maps/mini_games


如果你用Windows,可以将地图保存在StarCraft II/Maps/mini_games


Linux用户请将地图保存在~/StarCraft II/Maps/mini_games



5)安装Tensorflow和baseline库


我们需要更多库!我们需要Google Tensorflow 和 OpenAI baselines这些库。


使用以下命令:


pip3 install tensorflow
pip3 install baselines

我使用OpenAI's baselines库实现了强化模型。OpenAI's baselines库依赖于Tensorflow,因此我们需要安装Tensorflow。 我认为OpenAI的基线是Deep Q-Network实现里最漂亮的,这也是我用它的原因!


我猜,看这篇文章的人,你们大多数都已经安装TensorFlow库了吧:)



6)用IntelliJ(或PyCharm)打开项目


输入下面的命令行,训练就开始了


python3 train_mineral_shards.py

提醒一下,我强烈建议你在IDE(集成开发环境)上开发强化学习,因为我接下来会使用Debug mode来解释环境变量:) 我目前在IntelliJ上运行这个项目。


运行 IntelliJ 或 PyCharm,打开我们刚刚克隆的项目的文件夹。



设定Project Structure


选择菜单 [File > Project Structure] 



Module SDK上选择Python3 SDK。如果你找不到SDK,单击[New...]添加你自己的python3二进制文件。




7)运行训练脚本


好,接下来开始跑训练脚本。右键点击train_mineral_shards.py,选择菜单[Run 'train_mineral_shards']



然后,你就能在控制台看见运行《星际争霸2》的日志了。



对上面的日志做个简短的说明。


  • steps:发送到海军陆战队的命令数The number of commands

  • episodes:我们玩的游戏数The number of games

  • mean 100 episode reward:最近100次游戏获得的平均奖励

  • mean 100 episode min…:最近100次游戏采矿的平均值

  • % time spent exploring:花在探路上的时间比(探路/采矿)


我设置训练脚本运行20,000,000步(如果你想在笔记本电脑上运行,建议你将训练步长设置在50万的样子)



8)运行预训练模型


我编码程序在完成所有训练步骤后,将训练好的模型保存在文件夹mineral_shards.pkl里。


act.save("mineral_shards.pkl")

如果你想用这个预训练模型,只要运行enjoy script就行啦☺


右键enjoy_mineral_shards.py,选择菜单[Run 'enjoy_mineral_shards']



然后,你就能在CollectMineralShards地图上看到预训练好的智能体啦~




原文地址:http://chris-chris.ai/2017/08/30/pysc2-tutorial1/



登录查看更多
1

相关内容

【陈天奇】TVM:端到端自动深度学习编译器,244页ppt
专知会员服务
86+阅读 · 2020年5月11日
2019必读的十大深度强化学习论文
专知会员服务
57+阅读 · 2020年1月16日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
谷歌足球游戏环境使用介绍
CreateAMind
33+阅读 · 2019年6月27日
TensorFlow 2.0深度强化学习指南
云栖社区
18+阅读 · 2019年2月1日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
DeepMind发布《星际争霸 II》深度学习环境
人工智能学家
8+阅读 · 2017年9月22日
Arxiv
6+阅读 · 2019年4月4日
Arxiv
7+阅读 · 2018年12月26日
3D-LaneNet: end-to-end 3D multiple lane detection
Arxiv
7+阅读 · 2018年11月26日
Arxiv
3+阅读 · 2018年10月8日
Relational Deep Reinforcement Learning
Arxiv
10+阅读 · 2018年6月28日
Arxiv
3+阅读 · 2018年6月14日
VIP会员
相关资讯
谷歌足球游戏环境使用介绍
CreateAMind
33+阅读 · 2019年6月27日
TensorFlow 2.0深度强化学习指南
云栖社区
18+阅读 · 2019年2月1日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
DeepMind发布《星际争霸 II》深度学习环境
人工智能学家
8+阅读 · 2017年9月22日
相关论文
Top
微信扫码咨询专知VIP会员