Proyek ini menyediakan infrastruktur yang dioptimalkan untuk pembelajaran penguatan. Ini memperluas antarmuka gym OpenAI ke beberapa lingkungan paralel dan memungkinkan agen untuk diimplementasikan di TensorFlow dan melakukan komputasi batch. Sebagai titik awal, kami menyediakan BatchPPO, implementasi Optimasi Kebijakan Proksimal yang dioptimalkan.
Harap kutip makalah TensorFlow Agents jika Anda menggunakan kode dari proyek ini dalam penelitian Anda:
@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 }
}
Dependensi: Python 2/3, TensorFlow 1.3+, Gym, ruamel.yaml
Kloning repositori dan jalankan algoritma PPO dengan mengetik:
python3 -m agents.scripts.train --logdir=/path/to/logdir --config=pendulum
Algoritme yang digunakan ditentukan dalam konfigurasi dan pendulum
yang dimulai di sini menggunakan implementasi PPO yang disertakan. Lihat konfigurasi yang telah ditentukan sebelumnya di agents/scripts/configs.py
.
Jika Anda ingin melanjutkan proses yang dimulai sebelumnya, tambahkan tanda --timestamp=<time>
ke perintah terakhir dan berikan stempel waktu pada nama direktori proses Anda.
Untuk memvisualisasikan metrik, mulai TensorBoard dari terminal lain, lalu arahkan browser Anda ke http://localhost:2222
:
tensorboard --logdir=/path/to/logdir --port=2222
Untuk merender video dan mengumpulkan statistik OpenAI Gym untuk diunggah ke papan skor, ketik:
python3 -m agents.scripts.visualize --logdir=/path/to/logdir/ < time > - < config > --outdir=/path/to/outdir/
Kami merilis proyek ini sebagai titik awal yang memudahkan penerapan ide pembelajaran penguatan baru. File-file ini adalah tempat yang baik untuk memulai ketika memodifikasi kode:
Mengajukan | Isi |
---|---|
scripts/configs.py | Konfigurasi eksperimen yang menentukan tugas dan algoritma. |
scripts/networks.py | Model jaringan saraf. |
scripts/train.py | File yang dapat dieksekusi berisi pengaturan pelatihan. |
algorithms/ppo/ppo.py | Grafik TensorFlow untuk algoritma PPO. |
Untuk menjalankan pengujian unit dan linting, ketik:
python2 -m unittest discover -p " *_test.py "
python3 -m unittest discover -p " *_test.py "
python3 -m pylint agents
Untuk pertanyaan lebih lanjut, silakan buka terbitan di Github.
Kami menyertakan antarmuka batch untuk lingkungan OpenAI Gym yang terintegrasi penuh dengan TensorFlow untuk implementasi algoritme yang efisien. Hal ini dicapai melalui komponen inti berikut:
agents.tools.wrappers.ExternalProcess
adalah pembungkus lingkungan yang membangun lingkungan OpenAI Gym di dalam proses eksternal. Panggilan ke step()
dan reset()
, serta akses atribut, diteruskan ke proses dan menunggu hasilnya. Hal ini memungkinkan untuk menjalankan beberapa lingkungan secara paralel tanpa dibatasi oleh kunci penerjemah global Python.agents.tools.BatchEnv
memperluas antarmuka OpenAI Gym ke sejumlah lingkungan. Ini menggabungkan beberapa lingkungan OpenAI Gym, dengan step()
menerima serangkaian tindakan dan mengembalikan sejumlah observasi, hadiah, tanda selesai, dan objek info. Jika lingkungan individu hidup dalam proses eksternal, maka mereka akan melangkah secara paralel.agents.tools.InGraphBatchEnv
mengintegrasikan lingkungan batch ke dalam grafik TensorFlow dan menjadikan fungsi step()
dan reset()
dapat diakses sebagai operasi. Kumpulan pengamatan saat ini, tindakan terakhir, penghargaan, dan tanda selesai disimpan dalam variabel dan tersedia sebagai tensor.agents.tools.simulate()
menggabungkan langkah lingkungan batch dalam grafik dan algoritme pembelajaran penguatan menjadi satu operasi untuk dipanggil di dalam loop pelatihan. Hal ini mengurangi jumlah panggilan sesi dan menyediakan cara sederhana untuk melatih algoritma masa depan. Untuk memahami seluruh kode, harap pahami operasi aliran kontrol TensorFlow, terutama tf.cond()
, tf.scan()
, dan tf.control_dependencies()
.
Ini bukan produk resmi Google.