前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【加入星际2征程】DeepMind星际争霸2开源机器学习平台入门

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

作者头像
新智元
发布2018-03-22 15:48:40
1.1K0
发布2018-03-22 15:48:40
举报
文章被收录于专栏:新智元新智元
【新智元导读】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/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档