锡耶纳大学强化学习图书馆

usienarl的Python项目详细描述


这是一个用于强化学习(RL)实验的Python3.6和更高版本的库。

这个库的思想是生成一个直观但通用的系统来生成rl代理、实验、模型等。 该库是模块化的,允许简单的实验迭代和验证。它目前在我的研究中使用 首先是为了这个目的而建造的。

注意:这不是一个入门级框架。用户应该至少在这两方面都有一定的经验 python和强化学习。该框架易于扩展,但几乎所有与代理和环境相关的 工作应该自己做。

功能

包含在包中:

  • 模型、代理、环境、实验、探索策略抽象类及其相互关系隐藏在实现中
  • < DL>
    使用自动文件夹设置和组织功能,在多个相等的迭代中运行相同的实验,注册以下度量:
    > UL>
  • 培训、验证和测试的平均总奖励(一集奖励)
  • 培训、验证和测试的平均等级奖励(每一步奖励)
  • 在所有实验迭代(如果不止一次)中,平均总奖励和标度奖励的平均值和标准偏差
  • 所有实验迭代(如果不止一次)中最大总回报和标度回报的平均值和标准偏差
  • 所有实验迭代(如果不止一次)中最小训练次数的平均值和标准偏差
  • 实验迭代在上述每一个度量中获得最佳结果
< DL>
许多已经在预定义模型中实现的最新算法,包括:
> UL>
  • 表格式时差q-learning,sarsa,具有优先经验重放记忆缓冲区的预期sarsa
  • 深度时差q-learning(dqn),sarsa,具有优先体验重放记忆缓冲区的期望sarsa
  • 具有优先体验重放记忆缓冲区的双深度时差q-学习(ddqn)
  • 用优先经验重放记忆缓冲区与时差q学习(dddqn)作斗争
  • 普通政策梯度(vpg)与一般优势估计缓冲区使用奖励去
  • < DL>
    许多最先进的勘探政策,包括:
    > UL>
  • 贪心epsilon,衰减率、起始值和结束值可调
  • 具有可调温度衰减率、起始值和结束值的玻尔兹曼采样
  • config类定义所有tensorflow图(包括cnn)的隐藏层
  • 默认的传递接口类,允许代理和环境之间的通信
  • 不包括在套餐中:

    • openai健身房环境中每个算法的大量基准
    • 默认代理、openai健身房环境和基准测试实验类,可自行测试基准

    有关此框架使用的其他示例,请查看以下github页面:

    许可证

    BSD 3条款许可证

    有关其他信息,请查看提供的许可证文件。

    如何安装

    如果您只需要使用框架,只需下载pip包usinearl并在脚本中导入该包即可。

    安装时,请确保选择适合您计算能力的版本。 如果您安装了CUDA,建议使用GPU版本。否则,只需使用cpu veRSiC. 要选择版本,请在安装过程中指定您的额外要求:

    • pip install usinearl[tensorflow gpu]安装tensorflow gpu版本
    • pip install usinearl[tensorflow]使用CPU版本安装tensorflow

    注意:如果指定额外的需求失败,将导致无法安装tensorflow,因此库不会 完全可用。例如,这是不允许的,除非您已经安装了tensorflow

    • pip安装usineral

    如果您想改进/修改/扩展框架,或者甚至只是在家里尝试我自己的基准测试,请下载或克隆 git存储库。 欢迎您公开问题或参与项目。请注意,基准测试是使用TensorFlow GPU构建的。

    如何使用

    对于一个简单的用例,请参阅存储库中提供的基准测试。有关高级使用,请参阅内置文档 以及存储库中提供的源代码。

    当前问题

    从保存恢复的角度来看,实现一种简单的传递元图的方法可能是有用的 不需要重新定义整个代理(可能以某种方式序列化代理?)

    实验现在只能在特定的环境下进行。测试多个环境可能很有趣 无论是从课程学习的角度(仍然可以通过多次后续实验来完成),还是从 泛化视角(训练一个、验证另一个等)。

    如果实现了上述方法,还需要一种检查环境是否彼此兼容的方法。

    小问题但仍值得解决,run_实验方法的results.log文件输出在表中的格式不正确 结果。一个改善元素间距的方法会很棒!

    此外,算法的数量仍然有限,有些实现可能在某些特定设置中失败。进一步添加 模型和算法的改进(例如,返回标准化等)非常受欢迎。

    最后,信任域策略优化算法的实现仍处于alpha开发阶段。

    更改日志

    • 修复了使用tensorflow.math.add执行的操作,使其成为tensorflow.add,以保持与旧版本tensorflow(例如1.9.0)的兼容性

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束