dm_control
: โครงสร้างพื้นฐาน Google DeepMind สำหรับการจำลองตามฟิสิกส์ชุดซอฟต์แวร์ของ Google DeepMind สำหรับการจำลองตามฟิสิกส์และสภาพแวดล้อมการเรียนรู้แบบเสริมแรงโดยใช้ฟิสิกส์ MuJoCo
บทช่วยสอนเบื้องต้น สำหรับแพ็คเกจนี้มีให้ใช้งานในรูปแบบสมุดบันทึก Colaboratory:
แพ็คเกจนี้ประกอบด้วยส่วนประกอบ "หลัก" ดังต่อไปนี้:
dm_control.mujoco
: ไลบรารีที่ให้การเชื่อมโยง Python กับกลไกฟิสิกส์ MuJoCo
dm_control.suite
: ชุดของสภาพแวดล้อมการเรียนรู้ Python Reinforcement ที่ขับเคลื่อนโดยกลไกฟิสิกส์ MuJoCo
dm_control.viewer
: โปรแกรมดูสภาพแวดล้อมแบบโต้ตอบ
นอกจากนี้ ส่วนประกอบต่อไปนี้ยังพร้อมใช้งานสำหรับการสร้างงานการควบคุมที่ซับซ้อนมากขึ้น:
dm_control.mjcf
: ไลบรารีสำหรับเขียนและแก้ไขโมเดล MuJoCo MJCF ใน Python
dm_control.composer
: ไลบรารีสำหรับกำหนดสภาพแวดล้อม RL ที่สมบูรณ์จากส่วนประกอบที่นำมาใช้ซ้ำได้ในตัวเอง
dm_control.locomotion
: ไลบรารีเพิ่มเติมสำหรับงานที่กำหนดเอง
dm_control.locomotion.soccer
: งานฟุตบอลหลายตัวแทน
หากคุณใช้แพ็คเกจนี้ โปรดอ้างอิงเอกสารประกอบของเรา:
@article{tunyasuvunakool2020,
title = {dm_control: Software and tasks for continuous control},
journal = {Software Impacts},
volume = {6},
pages = {100022},
year = {2020},
issn = {2665-9638},
doi = {https://doi.org/10.1016/j.simpa.2020.100022},
url = {https://www.sciencedirect.com/science/article/pii/S2665963820300099},
author = {Saran Tunyasuvunakool and Alistair Muldal and Yotam Doron and
Siqi Liu and Steven Bohez and Josh Merel and Tom Erez and
Timothy Lillicrap and Nicolas Heess and Yuval Tassa},
}
ติดตั้ง dm_control
จาก PyPI โดยเรียกใช้
pip install dm_control
หมายเหตุ : ไม่สามารถติดตั้ง
dm_control
ในโหมด "แก้ไขได้" (เช่นpip install -e
)แม้ว่า
dm_control
ได้รับการอัปเดตเป็นส่วนใหญ่เพื่อใช้การเชื่อมโยงแบบ pybind11 ที่ได้รับผ่านแพ็คเกจmujoco
แต่ในขณะนี้ ยังคงอาศัยส่วนประกอบดั้งเดิมบางส่วนที่สร้างขึ้นโดยอัตโนมัติจากไฟล์ส่วนหัว MuJoCo ในลักษณะที่เข้ากันไม่ได้กับโหมดที่แก้ไขได้ การพยายามติดตั้งdm_control
ในโหมดแก้ไขจะส่งผลให้เกิดข้อผิดพลาดในการนำเข้า เช่น:ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
วิธีแก้ไขคือ
pip uninstall dm_control
แล้วติดตั้งใหม่โดยไม่ใช้แฟล็ก-e
ตั้งแต่เวอร์ชัน 1.0.0 เป็นต้นไป เราใช้การกำหนดเวอร์ชันเชิงความหมาย
ก่อนเวอร์ชัน 1.0.0 แพ็คเกจ dm_control
Python นั้นมีเวอร์ชัน 0.0.N
โดยที่ N
คือหมายเลขการแก้ไขภายในที่เพิ่มขึ้นตามจำนวนที่กำหนดเองในทุก ๆ คอมมิต Git เดียว
หากคุณต้องการติดตั้ง dm_control
เวอร์ชันที่ยังไม่เผยแพร่โดยตรงจากพื้นที่เก็บข้อมูลของเรา คุณสามารถทำได้โดยการเรียกใช้ pip install git+https://github.com/google-deepmind/dm_control.git
การเชื่อมโยง MuJoCo Python รองรับแบ็กเอนด์การเรนเดอร์ OpenGL ที่แตกต่างกันสามแบบ: EGL (ไม่มีหัว, เร่งด้วยฮาร์ดแวร์), GLFW (มีหน้าต่าง, เร่งด้วยฮาร์ดแวร์) และ OSMesa (ใช้ซอฟต์แวร์ล้วนๆ) ต้องมีแบ็กเอนด์อย่างน้อยหนึ่งในสามรายการนี้จึงจะแสดงผลผ่าน dm_control
ได้
รองรับการเรนเดอร์ฮาร์ดแวร์ด้วยระบบ windowing ผ่าน GLFW และ GLEW บน Linux สามารถติดตั้งได้โดยใช้ตัวจัดการแพ็คเกจของการแจกจ่ายของคุณ ตัวอย่างเช่น บน Debian และ Ubuntu สามารถทำได้โดยการเรียกใช้ sudo apt-get install libglfw3 libglew2.0
โปรดทราบว่า:
dm_control.viewer
สามารถใช้ได้กับ GLFW เท่านั้น การเรนเดอร์ฮาร์ดแวร์ "Headless" (เช่น ไม่มีระบบหน้าต่าง เช่น X11) จำเป็นต้องรองรับ EXT_platform_device ในไดรเวอร์ EGL ไดรเวอร์ Nvidia ล่าสุดรองรับสิ่งนี้ คุณจะต้องมี GLEW ด้วย บน Debian และ Ubuntu sudo apt-get install libglew2.0
สามารถติดตั้งได้ผ่าน
การเรนเดอร์ซอฟต์แวร์ต้องใช้ GLX และ OSMesa บน Debian และ Ubuntu sudo apt-get install libgl1-mesa-glx libosmesa6
สามารถติดตั้งได้โดยใช้
ตามค่าเริ่มต้น dm_control
จะพยายามใช้ GLFW ก่อน จากนั้นจึงใช้ EGL ตามด้วย OSMesa คุณยังสามารถระบุแบ็กเอนด์เฉพาะที่จะใช้โดยตั้งค่าตัวแปรสภาพแวดล้อม MUJOCO_GL=
เป็น "glfw"
, "egl"
หรือ "osmesa"
ตามลำดับ เมื่อเรนเดอร์ด้วย EGL คุณยังสามารถระบุ GPU ที่จะใช้สำหรับการเรนเดอร์ได้โดยตั้งค่าตัวแปรสภาพแวดล้อม MUJOCO_EGL_DEVICE_ID=
เป็น GPU ID เป้าหมาย
คำแนะนำข้างต้นโดยใช้ pip
ควรใช้งานได้ โดยมีเงื่อนไขว่าคุณใช้ล่าม Python ที่ติดตั้งโดย Homebrew (แทนที่จะเป็นค่าเริ่มต้นของระบบ)
ก่อนที่จะรัน ตัวแปรสภาพแวดล้อม DYLD_LIBRARY_PATH
จำเป็นต้องได้รับการอัปเดตด้วยเส้นทางไปยังไลบรารี GLFW ซึ่งสามารถทำได้โดยการรัน export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH