Translate

2018年10月31日水曜日

Windows10上でdonkey_gymの強化学習デモをうごかす

自動運転RCカー Donkey Car を自作して1ヶ月弱、
Slackを参照する余裕がやっと出てきた今日このごろ

既存モデルはCNN4層の単純なモデル(KerasCategoricalクラス)で
実装されている。

でもせっかく実機があることだし、
強化学習モデルで動かしてみたいなあ..とSlackをさぐると、

donkey_gym
https://github.com/tawnkramer/donkey_gym


というpython パッケージを発見した。

少し覗いてみるとexamplesにすでに
強化学習モデルで実装したコードが有り
しかも OpenAI gym経由でDonkey Simulatorをうごかすらしい..


ということでインストールしようとしたのだが、
サンプルコードが使っている stable-baselines という
Pythonパッケージが(厳密にはatari-pyが)
Windowsではサポートされていないらしい..

Dockerでやるかなとおもったが、
Windows10上でUbuntuが動くアプリがMSのマーケットプレイスで
しかもタダで入手できるわけで、
これを使って構築してみた。

以下、手順である。
なお、PROXY環境下での実行なので、使ってない人は適宜無視しつつすすめてください。

-------
  • Windows10を起動
  • ブラウザから https://github.com/tawnkramer/donkey_gym/releases/download/v18.9/DonkeySimWindows.zip (もしくは最新版)をダウンロード
  • 展開し、適当なディレクトリを置き、DonkeySimを起動
  • 起動したら、Play!ボタンを押し、4つのシーンを選択できる画面を開く
  • 画面は放置し、別途スタートボタンからMicrosoft Store を起動
  • 「Ubuntu」で検索
  • 「Ubuntu 18.04 LTS」をインストール&PC再起動
  • Ubuntu 18.04 を起動
  • ユーザ、パスワード登録
  • sudo vi /etc/apt/apt.conf を編集してPROXYを有効化
  • vi ~/.bashrc を編集してhttp_proxy/HTTP_PROXY/https_proxy/HTTPS_PROXYを設定
  • source ~/.bashrc
  • git config --global http.proxy http://:<ポート>/
  • git config --global http.proxy http://:<ポート>/
  • sudo apt update && sudo apt upgrade -y
  • sudo apt-get install virtualenv build-essential python3-dev gfortran libhdf5-dev zip
  • virtualenv env -p python3
  • source env/bin/activate
  • pip install tensorflow==1.8.0
  • git clone -b master https://github.com/wroscoe/donkey donkeycar
  • cd donkeycar
  • pip install -e .
  • cd ..
  • pip install gym==0.10.5
  • sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev
  • pip install stable-baselines
  • wget https://github.com/tawnkramer/donkey_gym/releases/download/v18.9/DonkeySimLinux.zip
  • unzip DonkeySimLinux.zip
  • git clone https://github.com/tawnkramer/donkey_gym 
  • cd donkey_gym
  • pip install -e .

PPOアルゴリズムのサンプルを実行する場合

  • python donkey_gym/examples/reinforcement_learning/ppo_train.py --sim ~/DonkeySimLinux/donkey_sim.x86_64
上記コマンドするとなぜかWindowsダイレクトに起動しておいたシミュレータへせつぞくにいく。
このときネットワーク接続許可ダイアログが出るので許可する必要がある。
その後、リトライを繰り返すDonkeySimulatorが動き出したら成功。

Double DQNのサンプルを実行する場合

  • apt install -y libsm6 libxext6
  • vi donkey_gym\example\reinforcement_learning\ddqn.py を以下のように編集
:from tensorflow.python.keras.layers import Dense
from tensorflow.python.keras.optimizers import Adam
from tensorflow.python.keras.models import Sequential
#from tensorflow.keras.initializers import normal, identity
from tensorflow.python.keras.models import model_from_json
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Dropout, Activation, Flatten
from tensorflow.python.keras.layers import Conv2D, MaxPooling2D
import tensorflow as tf
from tensorflow.python.keras import backend as K
:



  • python donkey_gym/examples/reinforcement_learning/ddqn.py --sim ~/DonkeySimLinux/donkey_sim.x86_64
DDQNと同様で、Windows直下で実行中のシミュレータがあがり、トレーニングが開始される。
---------



 ..うーん Learning to Drive in a Dayって論文あったけど、
本当に in a Dayなのかな..

..なかなか最初の鋭角コーナを覚えてくれないなあ..


p.s.

Ubuntu 18.04 LTS on Windows10は最初っからCドライブを
/mnt/c にマウントしているので、ファイルをホスト側とやり取りする場合は
このマウントポイントを活用すれば良い。


p.s.その2

またまた、人気のでなさそうな記事を書いてしまった..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...