ด้านบน: ผลลัพธ์บน LunarLander-v2 หลังจากการฝึกฝนบนแล็ปท็อปของฉันเป็นเวลา 60 วินาที
CppRl เป็นเฟรมเวิร์กการเรียนรู้แบบเสริมกำลัง เขียนโดยใช้ฟรอนต์เอนด์ PyTorch C++
มีพื้นฐานมาจาก pytorch-a2c-ppo-acktr-gail ที่ยอดเยี่ยมของ Ikostrikov เป็นอย่างมาก คุณสามารถพิจารณานี่เป็นพอร์ตได้ API และอัลกอริธึมพื้นฐานเกือบจะเหมือนกัน (โดยมีการเปลี่ยนแปลงที่จำเป็นในการย้ายไปยัง C++)
นอกจากนี้ยังมีการใช้งานเซิร์ฟเวอร์ OpenAI Gym แบบธรรมดาที่สื่อสารผ่าน ZeroMQ เพื่อทดสอบเฟรมเวิร์กในสภาพแวดล้อม Gym
CppRl มุ่งหวังที่จะเป็นเฟรมเวิร์กที่พร้อมใช้งานจริงและขยายได้ ปรับให้เหมาะสมอย่างเหมาะสม สำหรับการใช้การเรียนรู้แบบเสริมกำลังในโครงการที่ Python ไม่สามารถใช้งานได้ ควรพร้อมใช้งานในแอปพลิเคชันเดสก์ท็อปบนคอมพิวเตอร์ของผู้ใช้โดยต้องมีการตั้งค่าขั้นต่ำในฝั่งผู้ใช้
ในขณะที่เขียนนี้ ไม่มีเฟรมเวิร์กการเรียนรู้แบบเสริมการใช้งานทั่วไปสำหรับ C++ ฉันต้องการหนึ่งอันสำหรับโปรเจ็กต์ส่วนตัว และส่วนหน้า PyTorch C++ เพิ่งเปิดตัว ดังนั้นฉันจึงคิดว่าควรจะสร้างอันหนึ่ง
ตัวอย่างที่ใช้เซิร์ฟเวอร์ OpenAI Gym ที่รวมมาให้นั้นมีให้ใน example
สามารถรันได้ดังต่อไปนี้: เทอร์มินัล 1:
./launch_gym_server.py
อาคารผู้โดยสาร 2:
build/example/gym_server
ใช้เวลาประมาณ 60 วินาทีในการฝึกอบรมตัวแทนให้ได้รับรางวัลเฉลี่ย 200 รางวัลบนแล็ปท็อปของฉัน (โปรเซสเซอร์ i7-8550U)
คุณสามารถตั้งค่าสภาพแวดล้อมและไฮเปอร์พารามิเตอร์ได้ใน example/gym_client.cpp
หมายเหตุ: เซิร์ฟเวอร์และไคลเอนต์ Gym ไม่ได้รับการปรับให้เหมาะสมเป็นอย่างดี โดยเฉพาะอย่างยิ่งเมื่อเป็นเรื่องเกี่ยวกับสภาพแวดล้อมที่มีการสังเกตรูปภาพ มีสำเนาเพิ่มเติมสองสามชุดที่จำเป็นโดยใช้ระบบการสื่อสารระหว่างกระบวนการ จากนั้น gym_client.cpp
จะมีสำเนาพิเศษหนึ่งหรือสองชุดเพื่อเปลี่ยนการสังเกตให้เป็นเมตริกเทนเซอร์ของ PyTorch นี่คือสาเหตุที่ประสิทธิภาพไม่ดีนักเมื่อเปรียบเทียบกับไลบรารี Python ที่ใช้สภาพแวดล้อม Gym
CMake ใช้สำหรับระบบบิลด์ การขึ้นต่อกันส่วนใหญ่จะรวมเป็นโมดูลย่อย (เรียกใช้ git submodule update --init --recursive
เพื่อรับพวกมัน) ต้องติดตั้ง Libtorch แยกต่างหาก
cd pytorch-cpp-rl
mkdir build && cd build
cmake ..
make -j4
cd pytorch-cpp-rl
mkdir build && cd build
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_PREFIX_PATH=C:/path/to/libtorch ..
cmake --build . --config Release
ก่อนที่จะรัน ตรวจสอบให้แน่ใจว่าได้เพิ่ม libtorch/lib
ให้กับตัวแปรสภาพแวดล้อม PATH
ของคุณ
ประสิทธิภาพของ Windows อยู่ที่ประมาณ 75% ของ Linux ในขณะนี้ ฉันกำลังหาวิธีเร่งความเร็ว
คุณสามารถรันการทดสอบด้วย build/cpprl_tests
( build/Release/cpprl_tests.exe
บน Windows)