DeepMind星际争霸2开源机器学习平台

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


//依赖
/*
1 IntelliJ ( or PyCharm)
2 Python3
3 StarCraft II (even Starter Pack is working)
4 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

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

DeepMind星际争霸2开源机器学习平台_第1张图片

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

DeepMind星际争霸2开源机器学习平台_第2张图片

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,打开我们刚刚克隆的项目的文件夹。

DeepMind星际争霸2开源机器学习平台_第3张图片

设定Project Structure

选择菜单[File > Project Structure]

DeepMind星际争霸2开源机器学习平台_第4张图片

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

DeepMind星际争霸2开源机器学习平台_第5张图片

7)运行训练脚本

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

DeepMind星际争霸2开源机器学习平台_第6张图片

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

DeepMind星际争霸2开源机器学习平台_第7张图片

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

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就行啦

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

DeepMind星际争霸2开源机器学习平台_第8张图片

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

DeepMind星际争霸2开源机器学习平台_第9张图片

原文地址:http://chris-chris.ai/2017/08/30/pysc2-tutorial1/返回搜狐,查看更多



你可能感兴趣的:(RL)