使用 Keras 构建复杂的循环神经网络的框架
能够轻松迭代不同的 神经网络 架构是进行 机器学习 研究的关键。虽然 深度学习 库如 Keras 使得创建新的层和模型变得非常容易,但使用现有的几乎所有流行的 深度学习 库来编写自定义的递归神经网络却比较困难。这些库中缺少的一个关键功能是可重用的 RNN 单元。大多数库提供的层(如 LSTM、GRU 等)只能原样使用,无法轻松嵌入到更大的 RNN 中。编写 RNN 逻辑本身有时会很繁琐。例如,在 Keras 中,状态(形状和初始值)的信息通过编写两个独立的函数 get_initial_states 和 reset_states(用于状态化版本)来提供。许多架构的实现在使用现代 深度学习 库时并不简单,例如:
RecurrentShop 解决了这些问题,它允许用户使用 Keras 的函数式 API 编写任意复杂度的 RNN。换句话说,用户构建一个标准的 Keras 模型,该模型定义了 RNN 在单个时间步中的逻辑,RecurrentShop 将此模型转换为一个 Recurrent 实例,该实例能够处理序列。
RNNCell 是一个定义 RNN 在单个时刻的计算的层。它接受一个张量列表作为输入([input, state1_tm1, state2_tm1...])并输出一个张量列表([output, state1_t, state2_t...])。RNNCell 不会迭代输入序列。它在单个时刻上进行计算。因此,LSTMC 的输入形状为
暂无开放 Issues,或尚未同步最近议题。