可以在两个方向进行RNN培训吗?

时间:2017-09-08 00:41:50

标签: keras keras-layer

我最近决定放弃使用Theano作为后端的20年前不受支持的vanilla ANSI C库,我之前使用它来完成Keras的建模工作。我希望能够在Theano中模拟我在C中可以做的类似事情。

典型的建模方案是训练网络通过一个或多个隐藏层在A和B之间双向映射:

A <==> h1 <==> hn <==> B

我的研究涉及不同类型的表示之间的映射(例如,您可以听到“狗”这个词并知道字母的样子,或者您可以读取字母DOG并知道这些字母听起来像什么)。在这种架构中,A和B有时都是输入,有时是输出。在阅读顺序模型描述之后,目前尚不清楚Keras是否允许这样做,因为它明确地具有第一层 - 因此有时A将是第一层,但有时B将是第一层。 Keras层是否可能 输入和输出层?

1 个答案:

答案 0 :(得分:0)

恢复模型似乎并不简单。

想象一个完全连接的神经元,在前进时执行以下操作:

 output = w1*i1 + w2*i2 + w3*i3 + bias #i1 to i3 are input values

现在当试图倒退时,即使你知道重量和偏差,i1,i2和i3也有无限的解决方案。它们只是一个方程式的三个变量。

所以,也许一种可能的方法(不确定可能会发生什么......)是创建一个同时接受两个输入的模型,并输出两个值。

您可以输入一个作为实际值,另一个作为零或类似的东西输入。