來源:chris-chris.ai
作者:Chris Song
編譯:文強
【新智元導讀】DeepMind此前開源了《星際爭霸2》機器學習訓練平臺,這個平臺對於state-of-the-art的深度強化學習算法來說是極好的測試平臺。希望下面這份教程能幫你更快更好地上手。
DeepMind 之前開源了《星際爭霸2》的深度強化學習平臺,這是個很好的訓練環境,學起來也很有趣。下面是一份有關設置環境和訓練模型的教程,基於Mac環境。我們會跑一遍訓練腳本,使用Deep Q-Network解決CollectMineralShards這個mini-game。享受學習吧~
在開始之前,你需要準備好:
先上結果:
這篇教程的結構:
1)安裝pysc2
2)Star&Fork pysc2樣本
3)克隆pysc2-examples庫
4)下載《星際爭霸2》地圖
5)安裝Tensorflow和baseline庫
6)用IntelliJ(或PyCharm)打開項目
7)運行訓練腳本
8)運行預訓練模型
接下來,我們就開始吧!
首先,我們要安裝pysc2庫。
在終端上輸入命令就好了(由於我們使用的是python3,必須輸入pip3)。
pip3 install pysc2然後,你的pysc2就安裝好了。
接下來,打開下面的Github連結:
https://github.com/chris-chris/pysc2-examples
這是最重要的一步!記得給我的庫加星哦☺
Fork也來一下(譯註:現在Star和Fork的數量都有所增長,Star已經超過150啦)~
簡單一行命令就能克隆這個庫了
然後你就能在計算機上看見「pysc2-examples」的目錄了。
在運行訓練腳本之前,我們必須下載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
我們需要更多庫!我們需要Google Tensorflow 和 OpenAI baselines這些庫。
使用以下命令:
pip3 install tensorflowpip3 install baselines我使用OpenAI's baselines庫實現了強化模型。OpenAI's baselines庫依賴於Tensorflow,因此我們需要安裝Tensorflow。 我認為OpenAI的基線是Deep Q-Network實現裡最漂亮的,這也是我用它的原因!
我猜,看這篇文章的人,你們大多數都已經安裝TensorFlow庫了吧:)
6)用IntelliJ(或PyCharm)打開項目輸入下面的命令行,訓練就開始了
提醒一下,我強烈建議你在IDE(集成開發環境)上開發強化學習,因為我接下來會使用Debug mode來解釋環境變量:) 我目前在IntelliJ上運行這個項目。
運行 IntelliJ 或 PyCharm,打開我們剛剛克隆的項目的文件夾。
設定Project Structure
選擇菜單 [File > Project Structure]
在Module SDK上選擇Python3 SDK。如果你找不到SDK,單擊[New...]添加你自己的python3二進位文件。
好,接下來開始跑訓練腳本。右鍵點擊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萬的樣子)
我編碼程序在完成所有訓練步驟後,將訓練好的模型保存在文件夾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/