2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「Pythonではじめるオープンエンドな進化的アルゴリズム」の環境構築をMac(M5)で行う

2
Posted at

初めに

O’Reilly Japanの「Pythonではじめるオープンエンドな進化的アルゴリズム」を研究室で読み進めていましたが、本書で提示されている手順ではMacbook Pro(M5)に環境構築ができませんでした。試行錯誤して本書で想定されている環境が構築できたため、こちらに書き残しておきます。

問題が発生した環境

機種 : MacBook Pro(M5)
OS : macOS Tahoe 26.4
Anaconda : 26.1.1

PythonとAnacondaのインストール方法

本書で割愛されているこれらのインストール方法ですが、それぞれ公式サイトからGUIでインストールを行いました。一応参考にしたサイトを記載するので、適宜参照してください。

環境構築ができない原因

本書の環境構築では、Evolution Gymというプラットフォームを用いているのですが、このEvolution GymがApple Siliconに対応していないために問題が発生しています。

本書のサポートページにて、「プラットフォームによってはエラーが出ることがあります。その際は、こちらのリポジトリに追加の修正を加えたコードを準備しましたので、こちらをお使いください。」との記載がありますが、こちらでも解決できなかったため、おそらくApple Silicon対応ではないかと思われます。

これらに加えて、過去の記事でTerminalをRossetaモードで実行することで解決を図っているものがありますが、今回はenvironment.ymlをApple siliconに対応させる方向で環境構築をしていきます。

手順1

ひとまず本書の指示通り、Evolution Gymからファイル一式をダウンロードします。

brew install cmake glfw
git clone --recurse-submodules https://github.com/EvolutionGym/evogym.git
cd evogym

このあと、ファイル一式の中にあるenvironment.ymlというファイルで仮想環境を作成するのですが、現状の環境設定ではApple Siliconに適していないためエラーが発生します。そのためエディタでevogym/environment.ymlを開き、以下のコードに書き換えます。

name: evogym
channels:
  - conda-forge  #conda-forgeチャンネルを優先
  - defaults
dependencies:
  - python=3.8.11  #Apple Siliconに対応する最低バージョン
  - openssl  #通信の暗号化ライブラリ
  - numpy==1.21.5  #conda-forge経由に変更
  - h5py==3.6.0  #conda-forge経由に変更
  - libffi=3.3  #Apple Siliconの動作に必要なため追加
  - pip
  - pip:
    - glfw==2.5.0
    - gpy==1.10.0
    - git+https://github.com/yunshengtian/neat-python@2762ab630838520ca6c03a866e8a158f592b0370
    - gym==0.22.0
    - imageio==2.14.1
    - matplotlib==3.5.1
    - git+https://github.com/yunshengtian/GPyOpt@5fc1188ffdefea9a3bc7964a9414d4922603e904
    - opencv-python==4.5.5.64
    - pillow==9.0.0
    - pybind11==2.9.0
    - pygifsicle==1.0.5
    - pyopengl==3.1.5
    - pyopengl-accelerate==3.1.5
    - torch==1.10.2
    - ttkbootstrap==1.5.1
    - typing==3.7.4.3

変更点

  • PythonをApple Siliconに対応している最低バージョンに変更
  • Apple Siliconにおいて稀に通信関連のエラーが発生したため、通信の暗号化ライブラリを追加
  • pipインストールではエラーが出るため、 h5pynumpy などをpip経由ではなく、conda-forgeからインストールするように変更
  • Apple Siliconでpandas等を動かすために必要なため、 libffiをconda-forgeからあらかじめインストール

手順2

全て変更し終わったら、本書の指示通り以下を実行し仮想環境を作成します。

conda env create -f environment.yml
conda activate evogym

こちらでエラーが発生しなければ、ひとまずApple Silicon向けのEvolution Gymの環境構築は完了です。

いくつかのエラーのようなものがでる可能性がありますが、新しいバージョンがあるというお知らせや、今回は使用しないライブラリとの競合の警告など直接動作に関係するものではないため、無視で大丈夫です。

手順3

環境構築が完了したため、次は本書のサンプルプログラムをダウンロードし、依存パッケージをインストールします。

git clone https://github.com/oreilly-japan/OpenEndedCodebook.git
cd OpenEndedCodebook
pip install -r requirements.txt
pip install --no-deps -r requirements-extra.txt

動作確認

上記のものが全て終わったら、Chapter2のサンプルプログラムを実行して動作確認をします。

cd experiments/Chapter2
python run_circuit_neat.py -p 50

エラーが起こらず本書に書かれている通りの動作になれば、Macbook Pro(M5)をはじめとするApple Siliconでの環境構築は完了です。ひとまずChapeter2までの動作確認をしているため、またChapeter3以降の動作で問題があれば追記したいと思います。

何か間違っている点などありましたら、お手数をおかけいたしますがお知らせいただけますと幸いです。

参考

そのほか、GeminiなどLLMを使って問題解決を行なっています。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?