Ubuntu16.04 フルバージョン Gym のインストールと手順
1. インストールの序文
以前、Windows システムに MuJoCo をインストールした経験を記録するためにブログを書きました: Win 10、Win 11 で MuJoCo と mujoco-py をインストールする - pytutorial_lan 606 のブログ - CSDN blog_windows インストール mujoco
しかし、実際のところ、Windows システムでの専門的な開発にはまだ多くの問題があり、また、最近仕事で Linux システムを頻繁に使用する必要があるため、Ubuntu 16.04 に再インストールしました。
2022 年のタイムノードに関しては、私はまだ正式に廃止され維持されようとしているシステムである Ubuntu 16.04 を選択します。主な理由は、私が使用しているツールの一部が Ubuntu 16.04 で最も互換性があるためですが、この記事で説明されている方法は理論的にはすべてに適用可能 どの Linux ディストリビューションでも良好なインストール エクスペリエンスを得ることができます。
2.ジム開発環境説明
Gym の正式名はOpenAI Gymで、OpenAI によって開発されたツールキットです。強化学習の基礎がある学生、または強化学習を学習している学生は、強化学習が環境と継続的に対話し、環境から徐々に報酬を得るエージェントであることを知っておく必要があります。知性を導く環境、体内の行動を探求する方法。Gymの開発目標は、強化学習アルゴリズムの開発プロセス全体において複雑な環境構築プロセスを考慮する必要をなくし、アルゴリズム自体の性能向上のみに注力することです。
Gym の具体的な手順については、公式ドキュメントを参照してください:基本的な使用法 - Gym Documentation (gymlibrary.dev)
具体的な公式 GitHub リンクは次のとおりです。GitHub - openai/gym: 強化学習アルゴリズムを開発および比較するためのツールキット。
Atari
ジムの環境には、 、MuJoCo
、Toy Text
、の合計 5 種類の環境があり、、 、はジムの基本版に既に含まれClassic Control
ている環境カテゴリであり、他の 3 つは追加インストールが必要な環境です。Box2D
Toy Text
Classic Control
OpenAI Gym 環境の完全な概要を提供するブログがあります。詳細については、「強化学習の基礎 (10) OpenAI Gym 環境の概要 - Short Book (jianshu.com)」を参照してください。
3. Gymのフルバージョンのインストール
3.1 Anaconda は仮想環境を作成します
Anaconda はオープンソースの Python ディストリビューションであり、その最大の利点は、相互に干渉することなく複数の仮想環境を作成できることです。これにより、複数の環境を切り替えて、異なる Python プロジェクトに適用できます。
特定の Anaconda インストール パッケージは、清華大学のオープン ソース ソフトウェア ミラー サイトからダウンロードできます。ミラー サイトの URL は次のとおりです: /anaconda/archive/ のインデックス | 清華大学オープン ソース ソフトウェア ミラー サイト | 清華オープン ソース ミラー
具体的には、Anaconda3-2020.07-Linux-x86_64.shバージョンをダウンロードしました。
ターミナルで、まず特定のダウンロード アドレスcd
に移動し、次のコマンド ラインを入力します。
bash Anaconda3-2021.11-Linux-x86_64.sh
特定のインストールの詳細については、次のリンクを参照してください。Ubuntuに Anaconda をインストールする詳細な手順 (Ubuntu21.10、Anaconda3)
インストールが完了したら、システムを再起動し、ターミナルを再度Ctrl + Alt + T
開くこと。次のインターフェイスが表示されます。
基本環境は毎回自動的に開かれますが、実際に使用する頻度は低いため、次のコマンドを使用して毎回自動的に開かれる仮想環境を閉じることができます。
conda config --set auto_activate_base false
次のコマンドを使用して、このマシン上に作成された Anacoda 仮想環境を表示できます。
conda info -e
上図のpy37
仮想今回Gymの製品版をインストールする際に使用した仮想環境です。
base
環境が1 つだけある場合は、次のコマンドを使用して独自の仮想環境を作成できます。
conda create -n py37 python==3.7.0
仮想環境を作成した後、次のコマンドを使用して仮想環境をアクティブにする必要があります。これにより、コマンド ラインの先頭に環境名が追加されます。
conda activate py37
現在の仮想環境を無効にしたい場合は、Terminla で次のコマンドを実行する必要があります。
conda deactivate
コマンドラインの先頭にある環境名が消えていることにも気づくでしょう。
仮想環境に入ると、通常の Python 環境と同様に、pip
コマンドを。
- 注 1: Anaconda 仮想環境を作成する上記の手順は、Windows システムで仮想環境を作成する場合とまったく同じです。
- 注 2: OpenAI Gym 公式 GitHub は、Linux および macOS システムで Python 3.7 ~ 3.10 をサポートしているため、他のバージョンの Python を使用することはお勧めできません。
- 注 3: 以前の使用では、
time.clock()
メソッドがため、env.render()
メソッドが失敗する原因となるため、Python 3.7 をインストールすることをお勧めします。
3.2 ジム[box2d]をインストールする
上記の仮想環境でpip install gym
コマンドを、最新の簡易バージョンの Gym が直接インストールされます。このバージョンの Gym には拡張環境が含まれていないため、 を使用できませんAtari
。このバージョンの Gym では、次のMuJoCo
ことBox2D
ができます。基本的Toy Text
な とClassic Control
。
Gym の公式ドキュメントのホームページに記載されている'LunarLander-v2'
クラシックが必要ですBox2D
。
3.2.1 公式 GitHub チュートリアルを使用したインストールのエラー報告と解決策
1 つ目は、Gym のライト バージョンをインストールすることです。
pip install gym
次に、公式ドキュメントに記載されている解決策は、次のコマンドを使用してインストールすることです。
pip install gym[box2d]
このコマンドでインストールしたレンダリング環境ではGymを正常に呼び出すことBox2D
ができず。
属性エラー: モジュール 'gym.envs.box2d' には属性 'LunarLander' がありません
インターネット上で提供されているチュートリアルでは、基本的にswig
モジュールをbox2d
いるのですが、何度も仮想環境を作成してインストールを完了させているのですが、未だに正常にLunarLander-v2
環境環境を通常どおりに開始するため、 「Face」を参照してください。
具体的な参考ブログは以下の通りです(Windows側の処理チュートリアル): AttributeError: module 'gym.envs.box2d' has no attribute 'LunarLander'_Faith_xzc's Blog-CSDN Blog
3.2.2 Anaconda を使用したインストール
主に次の投稿の 1 つからインスピレーションを受けました:次のエラーにもかかわらずジム (box2d) をインストールするにはどうすればよいですか? - ネットワーク (5axxw.com) を学ぶのが大好きです。conda コマンドを使用してインストールします。
注意すべき点は、次のコマンドを使用する前に、ジムの簡易バージョンの pip インストール コマンドを実行する必要はないということです。次のコマンドを直接実行すると、ジム 0.21.0 の最適なバージョンと一致します。
conda install -c conda-forge gym-box2d
上記の手順を実行するとpy37
、基本バージョンgym
と Box2D 風のジム環境がの仮想環境にインストールされますgym[box2d]
。
3.2.3 LunarLander-v2 環境が正常に実行できるかどうかをテストする
上で述べたように、LunarLander-v2 はジム Box2D クラスにおいて非常に重要な環境であり、ステップ 3.2.2 でインストールした環境に問題があるかどうかを検出できます。
まず、新しい Python スクリプトを作成し、次のコードを入力します。
import gym
import time
env = gym.make("LunarLander-v2")
env.reset()
done = False
while not done:
env.render()
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
time.sleep(0.04)
# print(observation)
env.close()
前の記事が正しくインストールされている場合は、次のアニメーションが表示されるはずです。
ちなみに、ジムのランニング画像をgifとして保存するコードは次のとおりです。
from matplotlib import animation
import matplotlib.pyplot as plt
import gym
def save_frames_as_gif(frames, path='./', filename='gym_animation.gif'):
# Mess with this to change frame size
plt.figure(figsize=(frames[0].shape[1] / 72.0, frames[0].shape[0] / 72.0), dpi=72)
patch = plt.imshow(frames[0])
plt.axis('off')
def animate(i):
patch.set_data(frames[i])
anim = animation.FuncAnimation(plt.gcf(), animate, frames=len(frames), interval=50)
anim.save(path + filename, writer='imagemagick', fps=60)
# Make gym env
env = gym.make('LunarLander-v2')
# Run the env
observation = env.reset()
my_frames = []
done = False
while not done:
my_frames.append(env.render(mode="rgb_array"))
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
save_frames_as_gif(my_frames, path='./', filename='LunarLander-v2.gif')
3.3 ジム[atrai]のインストール
3.3.1 pip でインストールする
実際にテストした後、仮想環境で pip を使用して直接インストールできます。インストール用の pip コマンドは次のとおりです。
pip install gym[atari]
pip install autorom[accept-rom-license]
3.3.2 Atari 環境が正常に実行できるかどうかをテストする
Atari の環境は本当に充実しているので、確認できる環境は全部で 62 個あります 詳しくは、Gym の公式ドキュメント: Complete List - Atari - Gym Documentation (gymlibrary.dev)を参照してください。
ここでは、非常に古典的なブレイクアウト ゲームをデモンストレーションとして使用して、gym[atari] が正常にインストールされているかどうかをテストします。テスト コードは次のとおりです。
import gym
env = gym.make("ALE/Breakout-v5", render_mode="human")
env.reset()
done = False
while not done:
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
Atari 環境のレンダリングでは、環境の作成時にレンダリング モードを指定する必要があることに注意してください。指定しないと、レンダリングが失敗します。
インストールが成功すると、次のインターフェイスが表示されるはずです。
3.4 ジム[mujoco]をインストールする
公式 GitHub ガイドには、「_v4」バージョン以降、MuJoCo 環境はもはや依存ではなくmujoco-py
、依存であると明確に記載されていますmujoco
。新しいバージョンの MuJoCo 環境をインストールする場合は を使用し、古いバージョンの MuJoCo 環境をインストールする場合は を使用するpip install gym[mujoco]
ことをお勧めします。pip install gym[mujoco_py]
以前に Windows システムに MuJoCo 環境をインストールした経験があるため、公式が推奨する pip インストール方法を直接使用せずに、インターネット上の他のブログの方法を統合しました。
参考ブログリンク:
Mujoco210 と Mujoco-py のインストール - Zhihu (zhihu.com)
また、上記でインストールした Gym のバージョンは 0.21.0 なので、環境の適用性を確保するために mujoco 2.1.0 をインストールすることにし、それに応じて古いバージョンをインストールする必要がありますmujoco-py
。
3.4.1 公式GitHubからmujoco 2.1.0をダウンロードしてインストールします
まず、DeepMind/MuJoCo の公式 GitHub リンクにアクセスします: Release 2.1.0 deepmind/mujoco (github.com)
Ubuntu システムにインストールされているので、それを選択してダウンロードしますmujoco210-linux-x86_64.tar.gz
。
次に、ダウンロードした圧縮パッケージをホーム フォルダーに置き、次のコマンドを入力します。
mkdir ~/.mujoco
tar -zxvf mujoco210-linux-x86_64.tar.gz -C ~/.mujoco
次に、環境変数を追加する必要があります。まず、次のコマンドを入力して環境変数のテキストを開きます。
gedit ~/.bashrc
文書の最後の行に次のように入力します。
export LD_LIBRARY_PATH=~/.mujoco/mujoco210/bin
テキスト エディタを保存して終了し、環境変数を更新します。
source ~/.bashrc
インストールが完了したら、インストールが成功したかどうかをテストする必要があります。次のコマンドを入力してテストします。
cd ~/.mujoco/mujoco210/bin
./simulate ../model/humanoid.xml
次のインターフェイスが表示されたら、mujoco 2.1.0 が正常にインストールされたことがわかります。
3.4.2 公式 GitHub mujoco-py をダウンロードしてインストールする
まず、OpenAI/mujoco-py の公式 GitHub リンクにアクセスします: openai/mujoco-py: MuJoCo は、接触を伴う詳細で効率的な剛体シミュレーション用の物理エンジンです。mujoco-py を使用すると、Python 3 から MuJoCo を使用できます。(github.com)
これをダウンロードして~/mujoco-py
フォルダー、以前に作成したconda
環境をアクティブにしてインストールします。
conda activate py37
cd ~/mujoco-py
pip3 install -U 'mujoco-py<2.2,>=2.1'
pip install -r requirements.txt
pip install -r requirements.dev.txt
python3 setup.py install
次に、環境変数を追加する必要があります。まず、次のコマンドを入力して環境変数のテキストを開きます。
gedit ~/.bashrc
文書の最後の行に次のように入力します。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
テキスト エディタを保存して終了し、環境変数を更新します。
source ~/.bashrc
インストールが完了したら、インストールが成功したかどうかをテストする必要があります。Python スクリプトを作成し、作成したばかりの環境を使用して、次のコードを入力して実行します。
import mujoco_py
import os
mj_path = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)
# [0. 0. 1.41. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
sim.step()
print(sim.data.qpos)
#[-1.12164337e-05 7.29847036e-22 1.39975300e+00 9.99999999e-01
# 1.80085466e-21 4.45933954e-05 -2.70143345e-20 1.30126513e-19
# -4.63561234e-05 -1.88020744e-20 -2.24492958e-06 4.79357124e-05
# -6.38208396e-04 -1.61130312e-03 -1.37554006e-03 5.54173825e-05
# -2.24492958e-06 4.79357124e-05 -6.38208396e-04 -1.61130312e-03
# -1.37554006e-03 -5.54173825e-05 -5.73572648e-05 7.63833991e-05
# -2.12765194e-05 5.73572648e-05 -7.63833991e-05 -2.12765194e-05]
作成したスクリプトを Pycharm で実行する場合は、追加の設定が必要になることに注意してください。また、Pycharm のすべての新しい Python スクリプトは次のように設定する必要があります。
Pycharm メニュー バーで [実行] -> [構成の編集] -> [環境変数] をクリックすると、追加された環境変数の名前はLD_LIBRARY_PATH
、値は です$LD_LIBRARY_PATH:/home/XXX/.mujoco/mujoco210/bin:/usr/lib/nvidia
。
- 注: 値の XXX はユーザー名です。
Pycharm で上記のスクリプトを実行すると、次のエラーが報告されます。
致命的なエラー: GL/osmesa.h: そのようなファイルまたはディレクトリはありません
他のブログによると、ここでは主にキー パッケージが不足しています。これは次のコマンドでインストールできます。
sudo apt install libosmesa6-dev
スクリプト ファイルを再度実行する過程で、新しいエラーが報告されました。
FileNotFoundError: [Errno 2] そのようなファイルまたはディレクトリはありません: 'patchelf': 'patchelf'
ここでは、次のコマンドでインストールされた別の重要なパッケージが欠落しています。
sudo apt-get update -y
sudo apt-get install -y patchelf
この時点で、スクリプトは正常に実行できます。上記の解決策は、私がこのブログで見たすべてです: mujoco_py のインストール中に発生したいくつかの問題と解決策 (コマンド 'gcc' が終了ステータス 1 で失敗するなど)_Chen Sanzhang のブログ - CSDN ブログ
他にエラーがある場合は、このブログで解決してみてください。
3.4.3 MuJoCo 環境が正常に実行できるかどうかをテストする
次のコードを実行してテストします。
import gym
env = gym.make("Ant-v2")
env.reset()
done = False
for _ in range(1000):
env.render()
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
前回のインストールが成功すると、次のインターフェイスが表示されるはずです。
この時点で、ジム環境のフルバージョンがインストールされます。