TF-Agents:TensorFlow的强化学习库
项目描述
TF-Agents:一个可靠、可扩展且易于使用的TensorFlow库,用于上下文多臂老虎机和强化学习。
TF-Agents使实现、部署和测试新的多臂老虎机和RL算法更加容易。它提供了经过良好测试且可模块化的组件,可以修改和扩展。它实现了快速代码迭代,具有良好的测试集成和基准测试。
要开始使用,我们建议查看我们的Colab教程之一。如果您需要RL(或快速复习)的介绍,请从这里开始。否则,查看我们的DQN教程,以在Cartpole环境中启动和运行智能体。当前稳定版本的API文档在tensorflow.org上。
TF-Agents正在积极开发中,接口可能会随时更改。欢迎反馈和评论。
目录
智能体
教程
多臂老虎机
示例
安装
贡献
版本
原则
贡献者
引用
免责声明
智能体
在TF-Agents中,RL算法的核心元素被实现为智能体
。智能体包括两个主要职责:定义与环境交互的策略,以及如何从收集的经验中学习/训练该策略。
目前,TF-Agents下提供了以下算法:
- DQN:通过深度强化学习实现人类水平控制 Mnih等,2015
- DDQN:使用双Q学习的深度强化学习 Hasselt等,2015
- DDPG:使用深度强化学习进行连续控制 Lillicrap等,2015
- TD3:解决Actor-Critic方法中的函数近似误差 Fujimoto等,2018
- REINFORCE:用于连接主义强化学习的基本统计梯度跟随算法 Williams,1992
- PPO:近端策略优化算法 Schulman等,2017
- SAC:软演员评论家 Haarnoja等,2018
教程
有关提供的主要组件的教程,请参阅docs/tutorials/
。
多臂老虎机
TF-Agents库包含一个全面的单臂老虎机套件,包括老虎机环境和智能体。RL智能体也可以用于老虎机环境。有关教程,请参阅bandits_tutorial.ipynb
,以及准备好运行的示例在tf_agents/bandits/agents/examples/v2
。
示例
在各个智能体目录下可以找到训练智能体的端到端示例。例如:
安装
TF-Agents发布夜间和稳定构建。有关版本列表,请参阅版本部分。以下命令涵盖了从pypi.org以及从GitHub克隆安装TF-Agents稳定和夜间版本。
:warning: 如果使用Reverb(重放缓冲区),这是非常常见的,TF-Agents仅适用于Linux。
注意:Python 3.11需要pygame 2.1.3+。
稳定版
运行以下命令安装最新稳定版本。该版本的API文档在tensorflow.org上。
$ pip install --user tf-agents[reverb]
# Use this tag get the matching examples and colabs.
$ git clone https://github.com/tensorflow/agents.git
$ cd agents
$ git checkout v0.18.0
如果您想使用标有与Tensorflow或Reverb不兼容的版本安装TF-Agents,请自行承担风险,使用以下模式。
$ pip install --user tensorflow
$ pip install --user dm-reverb
$ pip install --user tf-agents
如果您想使用Tensorflow 1.15或2.0,请安装版本0.3.0
# Newer versions of tensorflow-probability require newer versions of TensorFlow.
$ pip install tensorflow-probability==0.8.0
$ pip install tf-agents==0.3.0
夜间版
夜间构建包含最新功能,但可能比版本发布版稳定性较差。夜间构建以tf-agents-nightly
推送。我们建议安装TensorFlow的夜间版本(tf-nightly
)和TensorFlow Probability的夜间版本(tfp-nightly
),因为TF-Agents夜间版本是针对这些版本进行测试的。
要安装夜间构建版本,请运行以下命令
# `--force-reinstall helps guarantee the right versions.
$ pip install --user --force-reinstall tf-nightly
$ pip install --user --force-reinstall tfp-nightly
$ pip install --user --force-reinstall dm-reverb-nightly
# Installing with the `--upgrade` flag ensures you'll get the latest version.
$ pip install --user --upgrade tf-agents-nightly
从GitHub
克隆仓库后,可以通过运行pip install -e .[tests]
来安装依赖项。TensorFlow需要独立安装:pip install --user tf-nightly
。
贡献
我们渴望与您合作!请参阅CONTRIBUTING.md
了解如何贡献。本项目遵循TensorFlow的行为准则。通过参与,您应遵守此准则。
版本
TF Agents有稳定和夜间发布版。夜间发布版通常没有问题,但由于上游库在变化,可能会出现问题。下表列出了与每个TF Agents发布版对应的TensorFlow版本。感兴趣的发布版本
- 0.18.0停止支持Python 3.8。
- 0.16.0是第一个支持Python 3.11的版本。
- 0.15.0是与Python 3.7兼容的最后一个发布版。
- 如果使用numpy < 1.19,则应使用TF-Agents 0.15.0或更早版本。
- 0.9.0是与Python 3.6兼容的最后一个发布版。
- 0.3.0是与Python 2.x兼容的最后一个发布版。
发布 | 分支/标签 | TensorFlow版本 | dm-reverb版本 |
---|---|---|---|
夜间版 | master | tf-nightly | dm-reverb-nightly |
0.18.0 | v0.18.0 | 2.14.0 | 0.13.0 |
0.17.0 | v0.17.0 | 2.13.0 | 0.12.0 |
0.16.0 | v0.16.0 | 2.12.0 | 0.11.0 |
0.15.0 | v0.15.0 | 2.11.0 | 0.10.0 |
0.14.0 | v0.14.0 | 2.10.0 | 0.9.0 |
0.13.0 | v0.13.0 | 2.9.0 | 0.8.0 |
0.12.0 | v0.12.0 | 2.8.0 | 0.7.0 |
0.11.0 | v0.11.0 | 2.7.0 | 0.6.0 |
0.10.0 | v0.10.0 | 2.6.0 | |
0.9.0 | v0.9.0 | 2.6.0 | |
0.8.0 | v0.8.0 | 2.5.0 | |
0.7.1 | v0.7.1 | 2.4.0 | |
0.6.0 | v0.6.0 | 2.3.0 | |
0.5.0 | v0.5.0 | 2.2.0 | |
0.4.0 | v0.4.0 | 2.1.0 | |
0.3.0 | v0.3.0 | 1.15.0和2.0.0。 |
原则
本项目遵循谷歌的AI原则。通过参与、使用或为此项目做出贡献,您应遵守这些原则。
贡献者
我们想感谢以下个人为TF-Agents库的代码贡献、讨论和其他工作。
- James Davidson
- Ethan Holly
- Toby Boyd
- Summer Yue
- Robert Ormandi
- Kuang-Huei Lee
- Alexa Greenberg
- Amir Yazdanbakhsh
- Yao Lu
- Gaurav Jain
- Christof Angermueller
- Mark Daoust
- Adam Wood
引用
如果您使用此代码,请引用它如下
@misc{TFAgents,
title = {{TF-Agents}: A library for Reinforcement Learning in TensorFlow},
author = {Sergio Guadarrama and Anoop Korattikara and Oscar Ramirez and
Pablo Castro and Ethan Holly and Sam Fishman and Ke Wang and
Ekaterina Gonina and Neal Wu and Efi Kokiopoulou and Luciano Sbaiz and
Jamie Smith and Gábor Bartók and Jesse Berent and Chris Harris and
Vincent Vanhoucke and Eugene Brevdo},
howpublished = {\url{https://github.com/tensorflow/agents}},
url = "https://github.com/tensorflow/agents",
year = 2018,
note = "[Online; accessed 25-June-2019]"
}
免责声明
这不是一个官方的谷歌产品。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。