【发布时间】:2021-03-20 22:13:48
【问题描述】:
是否可以在 Pytorch 中实现一个没有非线性的 RNN 层,就像在 Keras 中一样,可以将激活设置为线性?通过消除非线性,我想实现一个具有可微分参数的一阶无限脉冲响应 (IIR) 滤波器,并将其集成到我的模型中以进行端到端学习。我显然可以在 Pytorch 中实现过滤器,但我认为使用内置函数可能更有效。
【问题讨论】:
-
如果你想移除激活并使 RNN 线性化,这与使用没有激活集的
nn.linear相同,因为时间分布的组件完全被移除。查看我的答案了解更多详情。 -
您将没有非线性的 RNN 解释为线性变换在技术上是正确的,但并不实用。对我来说,展开 250 个递归以将它们变成一组 250 个具有不断增长的维度的线性变换是没有意义的。
-
python 中的“for”循环非常慢。 Pytorch的RNN模型的主序列循环在C:link中实现。
-
@Reza,我说的不是 250 个线性变换,而是输入向量序列上的 1 个线性变换。
标签: python pytorch filtering recurrent-neural-network