يوفر هذا المشروع بنية تحتية محسنة للتعلم المعزز. فهو يوسع واجهة الصالة الرياضية OpenAI لتشمل بيئات متوازية متعددة ويسمح بتنفيذ الوكلاء في TensorFlow وإجراء عمليات حسابية مجمعة. كنقطة انطلاق، نحن نقدم BatchPPO، وهو تطبيق محسّن لتحسين السياسة القريبة.
يرجى الاستشهاد بمقالة TensorFlow Agents إذا كنت تستخدم كودًا من هذا المشروع في بحثك:
@article { hafner2017agents ,
title = { TensorFlow Agents: Efficient Batched Reinforcement Learning in TensorFlow } ,
author = { Hafner, Danijar and Davidson, James and Vanhoucke, Vincent } ,
journal = { arXiv preprint arXiv:1709.02878 } ,
year = { 2017 }
}
التبعيات: Python 2/3، TensorFlow 1.3+، Gym، ruamel.yaml
قم باستنساخ المستودع وتشغيل خوارزمية PPO عن طريق كتابة:
python3 -m agents.scripts.train --logdir=/path/to/logdir --config=pendulum
يتم تعريف الخوارزمية المستخدمة في التكوين ويستخدم pendulum
الذي بدأ هنا تطبيق PPO المضمن. تحقق من المزيد من التكوينات المحددة مسبقًا في agents/scripts/configs.py
.
إذا كنت تريد استئناف عملية تشغيل بدأت مسبقًا، أضف علامة --timestamp=<time>
إلى الأمر الأخير وقم بتوفير الطابع الزمني في اسم الدليل الخاص بعملية التشغيل.
لتصور المقاييس، ابدأ تشغيل TensorBoard من محطة طرفية أخرى، ثم قم بتوجيه متصفحك إلى http://localhost:2222
:
tensorboard --logdir=/path/to/logdir --port=2222
لعرض مقاطع الفيديو وجمع إحصائيات OpenAI Gym لتحميلها على لوحة النتائج، اكتب:
python3 -m agents.scripts.visualize --logdir=/path/to/logdir/ < time > - < config > --outdir=/path/to/outdir/
لقد أطلقنا هذا المشروع كنقطة انطلاق تجعل من السهل تنفيذ أفكار التعلم المعزز الجديدة. تعد هذه الملفات أماكن جيدة للبدء عند تعديل الكود:
ملف | محتوى |
---|---|
scripts/configs.py | تكوينات التجربة التي تحدد المهام والخوارزميات. |
scripts/networks.py | نماذج الشبكات العصبية. |
scripts/train.py | الملف القابل للتنفيذ الذي يحتوي على إعداد التدريب. |
algorithms/ppo/ppo.py | الرسم البياني TensorFlow لخوارزمية PPO. |
لتشغيل اختبارات الوحدة والفحص، اكتب:
python2 -m unittest discover -p " *_test.py "
python3 -m unittest discover -p " *_test.py "
python3 -m pylint agents
لمزيد من الأسئلة، يرجى فتح قضية على جيثب.
نقوم بتضمين واجهة مجمعة لبيئات OpenAI Gym التي تتكامل بشكل كامل مع TensorFlow لتطبيقات الخوارزمية الفعالة. ويتحقق ذلك من خلال هذه المكونات الأساسية:
agents.tools.wrappers.ExternalProcess
عبارة عن غلاف بيئة يقوم بإنشاء بيئة OpenAI Gym داخل عملية خارجية. تتم إعادة توجيه الاستدعاءات إلى step()
و reset()
، بالإضافة إلى الوصول إلى السمة، إلى العملية وانتظار النتيجة. يسمح هذا بتشغيل بيئات متعددة بالتوازي دون التقيد بقفل المترجم العالمي لـ Python.agents.tools.BatchEnv
يعمل على توسيع واجهة OpenAI Gym لتشمل مجموعات من البيئات. فهو يجمع بين بيئات OpenAI Gym المتعددة، حيث تقبل step()
مجموعة من الإجراءات وتعيد مجموعة من الملاحظات والمكافآت وعلامات التنفيذ وكائنات المعلومات. إذا كانت البيئات الفردية تعيش في عمليات خارجية، فإنها ستسير بالتوازي.agents.tools.InGraphBatchEnv
يدمج بيئة دفعية في الرسم البياني TensorFlow ويجعل وظائف step()
و reset()
قابلة للوصول كعمليات. يتم تخزين الدفعة الحالية من الملاحظات والإجراءات الأخيرة والمكافآت وعلامات التنفيذ في متغيرات وإتاحتها كموترات.agents.tools.simulate()
بدمج خطوة البيئة المجمعة في الرسم البياني وخوارزمية التعلم المعزز معًا في عملية واحدة يتم استدعاؤها داخل حلقة التدريب. وهذا يقلل من عدد مكالمات الجلسة ويوفر طريقة بسيطة لتدريب الخوارزميات المستقبلية. لفهم جميع التعليمات البرمجية، يرجى التعرف على عمليات تدفق التحكم في TensorFlow، وخاصة tf.cond()
و tf.scan()
و tf.control_dependencies()
.
هذا ليس أحد منتجات Google الرسمية.