TensorForce: (可能是)最好用的强化学习库

前言:

实现好用的强化学习算法不容易,这之间需要踩许多坑。工业界使用强化学习的话可以考虑使用这个现成的库,基于宽松的 Apache-2.0 协议;学术界也可以将其作为 baseline 。我自己实现过一些算法,如果对论文理解的不正确,或代码里有小疏漏,查错和调试是一件非常难的事情。有的时候做项目移植别人的代码会降低许多风险。

优点:

1. 把有名的主流算法全都实现了,共十几种算法,算法效果在这里
2. API 设计非常方便,非常值得借鉴,这也是为什么我没有推荐 OpenAI 的 baselines
3. TensorFlow 实现的 A3C 有两种可选选项:基于多线程的和基于分布式的,可以合理避免掉 Python 的GIL
4, 用了 TensorBoard 做可视化,会很好用
5, 代码结构比较清晰,静下心来慢慢看可以作为不错的教学代码
6. 可以快速应用自己设计的强化学习环境,只需要继承自Environment类并实现相关方法即可,把自己设计的环境包装一下工作量非常小

缺点:

1. 用的 TensorFlow,而不是PyTorch,如果单机多 CPU 并行依赖分布式,并不是个好思路,而且显存使用会很不合理,也会更麻烦,比 PyTorch 的 multiprocessing 麻烦多了,这也是为什么我切换到了 PyTorch
2. 包装的层数实在太多了,源码阅读起来时间成本很高,毕竟用的是 TF。竟然把 TF用成了PyTorch 风格

结论:

1. 工业界使用的话问题不大
2. 科研完全可以基于这个框架写新的强化学习算法,或只用它作为 baselines
3. 用它学习强化学习也不错
4. 学学它的 API 设计会很好,现有的开源强化学习代码通常写得都很乱
5, 我用 PyTorch

链接:

此博客中的热门博文

免费爬墙网站项目(ShadowSocksShare)开发简记

Ubuntu Gnome 酷炫完整指南(一):小工具篇