ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

OpenAI Gymの強化学習実装コードのBaselinesをインストール 2021

nullpo24.hatenablog.com

MuJoCoが無償化したということで、今一度Baselinesを触ってみる。

なぜOpen AI Gymか

AIが学習する環境設定などめんどくさい部分をOpenAIGymがやってくれて、コーディングに集中するため。

環境

Ubuntu18.04

必要パッケージをインストール

$ sudo apt update && sudo apt install cmake libopenmpi-dev python3-dev zlib1g-dev

GPUを使う場合

Nviida Driverをインストールする。

$ sudo ubuntu-drivers autoinstall
$ sudo reboot

Virtual envを構築

pythonスクリプトをpython3へ紐づける必要があります。 そうでなければ、コードがエラーになってしまうため、仮想環境構築は必須です。

$ sudo apt install virtualenv
($ pip install virtualenv)

virtualenv作成

$ virtualenv /path/to/venv --python=python3
(ex. $ virtualenv env1 --python=python3)

virtualenvをアクティベートしてvirtualenv環境に入ります。

$ . /path/to/venv/bin/activate
(ex. $ . env1/bin/activate 

BaseLinesをインストール

(virtualenv上で構築)

$ git clone https://github.com/openai/baselines.git
$ cd baselines
$ pip install tensorflow-gpu==1.14 # CUDAのGPU環境がある場合
   or
$ pip install tensorflow==1.14#CPUのみ

baselinesパッケージをインストール

$ pip install -e .

テストとイントール

$ pip install pytest
$ pytest 

レーニングモデルの使い方

python -m baselines.run --alg=<name of the algorithm> --env=<environment_id> [additional arguments]

Example(Mujoco)

無償になったMujocoをダウンロードする。

MuJoCo — Download

リンクをたどるとGitHubのReleaseにたどり着けるので、
mujoco-2.1.1-linux-x86_64.tar.gz
を解凍する。

ホームディレクトリ配下にMujocoをインストール

$ mkdir -p ~/.mujoco/

先ほど解凍したmujoco-2.1.0にmujoco210があるので.mujoco配下にコピペする。

.bashrcにパスを追加

$ vi ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/[username]/.mujoco/mujoco210/bin

$ source ~/.bashrc(再読み込み)
$ . ~/env1/bin/activate (再アクティベート)

pipインストールする。

$ pip install mujoco-py

Humanoid-v2実行

$ python -m baselines.run --alg=ppo2 --env=Humanoid-v2 --network=mlp --num_timesteps=2e7

※1, ※2

TroubleShooting

※1

distutils.errors.CompileError: command 'x86_64-linux-gnu-gcc' failed with exit status 1

$ sudo apt install libx11-dev
$ sudo apt-get install libglew-dev

※2

FileNotFoundError: [Errno 2] No such file or directory: 'patchelf': 'patchelf'

$ sudo add-apt-repository ppa:jamesh/snap-support
$ sudo apt-get update
$ sudo apt install patchelf