
Mushroomrl : 강화 학습 파이썬 라이브러리.
이 문서의 내용 :
Mushroomrl은 모듈 식으로 모듈 식으로 텐서 계산 (예 : Pytorch, Tensorflow) 및 RL 벤치 마크 (예 : Openai Gym, Pybullet, DeepMind Control Suite)에 잘 알려진 Python 라이브러리를 쉽게 사용할 수있는 Python Rensouccement Learning (RL) 라이브러리입니다. 클래식 RL 알고리즘 (예 : Q- 학습, SARSA, FQI) 및 깊은 RL 알고리즘 (예 : DQN, DDPG, SAC, TD3, TRPO, PPO)을 제공하는 간단한 방법으로 RL 실험을 수행 할 수 있습니다.
전체 문서 및 튜토리얼을 여기에서 사용할 수 있습니다.
MushroomRL 을 최소한으로 설치할 수 있습니다.
pip3 install mushroom_rl MushroomRL 에는 일부 선택적 구성 요소, 예를 들어 OpenAI Gym 환경 지원, Atari 2600 게임, Arcade Learning Environment 의 Atari 2600 게임 및 Pybullet 및 MuJoCo 와 같은 물리 시뮬레이터 지원이 포함되어 있습니다. 이러한 클래스에 대한 지원은 기본적으로 활성화되지 않습니다.
전체 기능 세트를 설치하려면 추가 패키지를 설치해야합니다. 실행을 통해 모든 것을 설치할 수 있습니다.
pip3 install mushroom_rl[all]이것은 플롯 종속성을 제외하고 Mushroomrl의 모든 종속성을 설치합니다. Ubuntu> 20.04의 경우 Pygame 및 체육관 종속성을 설치해야 할 수도 있습니다.
sudo apt -y install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
libsdl1.2-dev libsmpeg-dev libportmidi-dev ffmpeg libswscale-dev
libavformat-dev libavcodec-dev swig다른 운영 체제에 대해 이러한 종속성 중 일부를 설치해야합니다 (예 : MacOS 용 Swig)
아래는 플롯 종속성을 설치하기 위해 실행 해야하는 코드입니다.
sudo apt -y install python3-pyqt5
pip3 install mushroom_rl[plots]먼저 외부 종속성을 설치해야 할 수도 있습니다. Mujoco-Py 설치에 대한 자세한 내용은 프로젝트 페이지의 지침을 참조하십시오.
경고! Conda를 사용할 때는 QT에 문제가있을 수 있습니다. 코드에 다음 줄을 추가하여<conda_base_path>콘다 배포 경로로 바꾸고 사용중인 콘다 환경의 이름으로<env_name>을 대체하여 고칠 수 있습니다.
import os
os . environ [ 'QT_QPA_PLATFORM_PLUGIN_PATH' ] = '<conda_base_path>/envs/<env_name>/bin/platforms' dm_control mushroomrl 인터페이스를 사용하려면 여기에서 찾을 수있는 지침에 따라 dm_control 설치하십시오.
서식지와 Igibson은 현실적이고 감각이 풍부한 학습 환경을 제공하는 시뮬레이션 플랫폼입니다. Mushroomrl에서 에이전트의 기본 관측은 RGB 이미지이지만 RGBD, 에이전트 감각 데이터 및 기타 정보도 사용할 수 있습니다.
이전 버전의 IGIBSON 또는 서식지가 이미 설치된 경우이를 제거하고 깨끗하게 설치하는 것이 좋습니다.
공식 안내서를 따르고 자산 및 데이터 세트를 설치하십시오.
<MUSHROOM_RL PATH>/mushroom-rl/examples/igibson_dqn.py 의 경우 실행해야합니다
python -m igibson.utils.assets_utils --download_assets
python -m igibson.utils.assets_utils --download_demo_data
python -m igibson.utils.assets_utils --download_ig_dataset타사 데이터 세트를 사용할 수도 있습니다.
장면 세부 사항은 YAML 파일로 정의되며 에이전트에게 전달해야합니다. 예를 들어 <IGIBSON PATH>/igibson/test/test_house.YAML 참조하십시오.
공식 가이드를 따르고 서식지 _baselines로 전체 설치 하십시오. 그런 다음이 다음과 같은 대화식 데이터 세트를 다운로드 할 수 있습니다. 다른 데이터 세트를 다운로드 해야하는 경우이 유틸리티를 사용할 수 있습니다.
Habitat 환경을 만들 때 래퍼 이름과 두 개의 Yaml 파일 Habitat(wrapper, config_file, base_config_file) 을 전달해야합니다.
래퍼는 <MUSHROOM_RL PATH>/mushroom-rl/environments/habitat_env.py 에 정의 된 것 중 하나이며 체육관과 같은 형식의 행동과 관찰을 변환하는 것을 관리해야합니다. 작업 / 로봇에 필요한 경우 새 포장지를 정의해야 할 수도 있습니다.
YAML 파일은 서식지 환경, 장면, 로봇에 사용할 수있는 센서, 보상, 행동 이산화 및 필요한 추가 정보의 모든 세부 사항을 정의합니다. 두 번째 YAML 파일은 선택 사항이며 첫 번째 YAML에 이미 정의 된 내용을 덮어 씁니다.
habitat-lab에서 Yamls를 사용하는 경우BASE_TASK_CONFIG_PATH의 Yaml을 정의하는지 확인하십시오. 그들이 그렇게한다면, 당신은 그것을Habitat()에base_config_file로 전달해야합니다.habitat-labYamls는 실제로 상대 경로를 사용하고 루트 폴더 외부에서 호출하면 오류가 발생합니다.
데이터 세트를 사용하는 경우, 특히 상대 경로를 사용하는 경우 Yaml 파일에 정의 된 경로가 올바른지 확인하십시오. habitat-lab Yamls는 상대 경로를 사용하므로 조심하십시오. 기본적으로 Yaml 파일에 정의 된 경로는 Python 코드를 시작한 위치와 관련이 있습니다. 데이터 폴더가 다른 곳인 경우 기호 링크를 만들 수도 있습니다.
--data-path data 코드를 시작하는 곳에서 폴더에서 다운로드합니다) python -m habitat_sim.utils.datasets_download --uids replica_cad_dataset --data-path data<HABITAT_LAB PATH>/habitat_baselines/config/rearrange/rl_pick.yaml 사용합니다. 이 YAML은 BASE_TASK_CONFIG_PATH: configs/tasks/rearrange/pick.yaml 정의하며, 상대 경로이므로 base_config_file 인수로서의 절대 경로를 Habitat() 로 전달하여이를 덮어 쓸 필요가 있습니다.pick.yaml <HABITAT_LAB PATH> 와 관련하여 사용할 데이터 세트를 정의합니다. 이전 다운로드 명령과 함께 사용하지 않은 경우 --data-path Replicacad 데이터 세트는 이제 <HABITAT_LAB PATH>/data 에 있으며 이에 대한 링크를 만들어야합니다. ln -s < HABITAT_LAB PATH > /data/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_rearrange_sac.py 시작할 수 있습니다. 복제 장면을 다운로드하여 추출합니다
경고! 데이터 세트는 매우 큽니다!
sudo apt-get install pigz
git clone https://github.com/facebookresearch/Replica-Dataset.git
cd Replica-Dataset
./download.sh replica-path 이 작업에서는 사용자 정의 Yaml 파일 pointnav_apartment-0.yaml 만 사용합니다.
DATA_PATH: "replica_{split}_apartment-0.json.gz" 에이전트의 초기 위치 및 방향과 같은 일부 장면 세부 사항으로 JSON 파일을 정의합니다. {split} 값은 SPLIT 키에 정의됩니다.
새로운 위치를 시도하려면 장면의 탐색 가능한 포인트 세트에서 일부를 샘플링 할 수 있습니다.
habitat환경을 초기화 한 후 (예 :mdp = Habitat(...),mdp.env._env._sim.sample_navigable_point()실행하십시오.
SCENES_DIR: "Replica-Dataset/replica-path/apartment_0" 장면을 정의합니다. 앞에서 말했듯 이이 경로는 스크립트를 시작하는 위치와 관련이 있으므로 복제 폴더를 연결해야합니다. 예제 폴더에서 habitat_nav_dqn.py 시작하면 run을 시작하십시오
ln -s < PATH TO > /Replica-Dataset/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_nav_dqn.py 시작할 수 있습니다.다음을 사용하여 로컬 편집 가능한 설치를 수행 할 수도 있습니다.
pip install --no-use-pep517 -e .선택적 종속성을 설치하려면 :
pip install --no-use-pep517 -e .[all]실험을 실행하려면 Mushroomrl에는 실험에 필요한 정보를 제공하는 스크립트 파일이 필요합니다. "예제"폴더의 스크립트를 따라 실험을 실행할 수있는 방법에 대한 아이디어를 얻으십시오.
예를 들어, 제공된 예제 스크립트 중 하나를 사용한 빠른 실험을 실행하려면 실행하십시오.
python3 examples/car_on_hill_fqi.py과학 간행물에 Mushroomrl을 사용하는 경우 다음과 같이 인용하십시오.
@article { JMLR:v22:18-056 ,
author = { Carlo D'Eramo and Davide Tateo and Andrea Bonarini and Marcello Restelli and Jan Peters } ,
title = { MushroomRL: Simplifying Reinforcement Learning Research } ,
journal = { Journal of Machine Learning Research } ,
year = { 2021 } ,
volume = { 22 } ,
number = { 131 } ,
pages = { 1-5 } ,
url = { http://jmlr.org/papers/v22/18-056.html }
}질문이 있으시면 [email protected]에서 이메일을 보내십시오.
트위터 @Mushroom_rl에서 우리를 팔로우하십시오!