Ubuntu 18.04 に Google Research Football Environment をセットアップ(1)


KaggleでGoogle Research Football with Manchester City F.C.で使われているGoogle Research Football Environment(GRF)Dockerバージョンをセットアップしてみます。

当初はJetson Nano(Jetpack)にプレセットされているDockerを使ってみるつもりでしたが、調べてみたらGRFはx86_64(amd64)のアーキテクチャーしかサポートしていなかったので却下。

DockerのマルチCPUアーキテクチャを使えばDocker Desktop for WindowsでUbuntu/arm64のイメージを作ることができるかもしれません、やったことないけど….。

Docker Desktop for WindowsをインストールするとVirtualBoxと共存させるのは厄介です。

Windows の VirtualBox と Hyper-V についてをご参照ください

 

 

 

他にMacOSもサポートされていますが、管理人はMacを持っていない。

で結局、Windows 10 (64Bit) + VirtualBox + Ubuntu 18.04 LTS にセットアップすることにしました。

Ubuntu を USBメモリーからブートするようにすればメモリをもう少しかせげるかも、ただ、18.04LTSでやってみましたが最終インストーラーがクラッシュしたので諦めました。Docker Desktop for Windows + Ubuntu 18.04 LTS の環境でもやってみます)

 

Ububtu上のGoogle Football (gfootball)はこんな感じです。

管理人の古いPC(Intel Core i3-2100  3.1GHz RAM 4GB)ではカクカクしています。これ以上のスペックが必要です(最新のPCなら問題なし?)。できればNVIDIAのGPUが積んであれば申し分なしですが、無くても(一応)動きます。それにDockerをrunさせるとサウンドカードも要求されますが、無くても問題ありません。

まともな環境なら、こんな感じ。


1:Windows 10 (64Bit)にVirtualBoxをインストールしておきます。

Oracleのサイトからダウンロードしてセットアップしておきましょう。最新版はVer 6ですが、試してみたのは少し古い5.2版でした。たぶんどっちでもいいと思います。

注:

ただし、Hyper-Vと共存させようとするとやっかいです。

Windows の VirtualBox と Hyper-V についてをご参照ください

 


2:VirtualBoxにUbuntu 18.04 LTSをセットアップします。

GFootball環境をセットアップする場合、仮想ディスクのサイズは10GB以上(15GBくらい)を確保しておいてください。

このページをご参照ください。

 


3:Ubuntu 18.04 LTSにDockerをセットアップ

このページをご参照ください(16.04の環境でやってますが、手順は同じです)。

 


4:Ubuntu 18.04 LTSにTensorFlowをインストールしておきます。

1.前提条件やら依存関係をインストール

sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

2.TensorFlowをインストール

NVIDIAからお借りします。最新は2ですが、Dockerで使っているのは1.5.*のようなので以下のようにします。

sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 'tensorflow<2'

 


5:Dockerを使ってUbuntu 18.04 LTS にGoogle Research Football Environment をセットアップ

google-research / football を参照

In order to build Docker image you have to checkout GFootball git repository first:

Dockerイメージをビルドするには、最初にGFootball gitリポジトリをチェックアウトする必要があります。

 

CPU version 

近頃のDockerはNVIDIA GPU が使えるようですが、管理人のPCにはそんなGPUは積んでないのでCPU版を使ってみます。

以下の実行にはびっくりするくらい時間がかかります、ゆっくり構えてください(とりあえず、sudo で実行します)。

Tensorflow without GPU-training support version

sudo docker build --build-arg DOCKER_BASE=ubuntu:18.04 --build-arg DEVICE=cpu . -t gfootball

もしGPUをお持ちならここ参照

DockerをRunさせる前にX Window Server に接続しておきます。

 Enter the image

Start the Docker image

 Inside the Docker image you can interact with the environment the same way as in case of local installation. For example, to play the game yourself you can run:

Dockerイメージ内では、ローカルインストールの場合と同じ方法で(Googleの)環境と対話できます。 たとえば、自分でゲームをプレイするには、次のコマンドを実行できます。

Run environment

GFootballが起動します。

サウンドカードが設定されていないとALSAのエラー表示が出ますが、気にしない。

初期画面(興味深い対戦になっています^^クラシコ?)

しばらくすると、スタートします

 


Container ID を取得しておく

Container IDを控えておくと、後々再ビルドせずにContainerを再起動できます。

別ターミナルを開いて

 

起動する場合

Container IDは外部(host)ファイルをContainer 内のフォルダーにコピーしたりする場合にも使えます。

 


Training agents to play GRF(GRFをプレイするためエージェントをトレーニング)

Run training(トレーニングを実行)

以下の2つをインストールしておきます。

●Sonnet: sudo pip3 install dm-sonnet==1.*
●OpenAI Baselines: sudo pip3 install git+https://github.com/openai/baselines.git@master

To run example PPO experiment on academy_empty_goal scenario

academy_empty_goalシナリオでサンプルのPPO(強化学習アルゴリズム)を試してみる

 

To run on academy_pass_and_shoot_with_keeper scenario

academy_pass_and_shoot_with_keeperシナリオで実行するには

 

 

In order to train with nice replays being saved

いいリプレイを保存してトレーニングするために

In order to reproduce PPO results from the paper, please refer to:

論文からPPOの結果を再現するには、以下を参照してください。

gfootball/examples/repro_checkpoint_easy.sh
gfootball/examples/repro_scoring_easy.sh

 

管理人のプアなPCではトレーニングがいつ終わるのか想像もつかないので、新しいPCを導入するまでは中断….。

ん?トレーニングはColabでやればいいのかな?

 

Playing the game

とりあえずゲームをしてみましょう。

Google Research Football の環境でゲームをしてみる

 


Appendix

新しい強化学習環境

Introducing Google Research Football: A Novel Reinforcement Learning Environment

 


Appendix2

GRF ( paper )

 


GPU Version

Tensorflow with GPU-training support version

Start the Docker image

If you get errors related to --gpus all flag, you can replace it with --device /dev/dri/[X] adding this flag for every file in the /dev/dri/ directory. It makes sure that GPU is visibile inside the Docker image. You can also drop it altogether (environment will try to perform software rendering).

Run environment

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*