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 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...