寻找LSTM / GRU实施

时间:2018-03-23 20:55:50

标签: lstm

几年前,我做了很多工作,#34;正常"神经网络和通过反向传播的监督学习。我知道如何实现标准的神经网络。

现在我想学习LSTM / GRU网络的基础知识,但我能找到的只是抽象公式或如何使用Keras,TensorFlow或其他框架。我知道这些框架已经针对速度进行了很好的优化,但这并不是我感兴趣的,因为我无法看到,这些框架内部会发生什么。我对简单的简单实现感兴趣,例如Java / C#/ VB或其他,不使用RNN框架来理解这些RNN如何工作。一个简单的演示应用程序,有一个监督学习,看看如何设置内部的所有权重将是伟大的。我在最近两周搜索了详细信息,但似乎我无法选择正确的关键字。

任何编程语言,甚至FORTRAN或COBOL: - )

1 个答案:

答案 0 :(得分:2)

我建议你看看斯坦福课程CS231n。讲座和作业在http://cs231n.github.io。您可以在YouTube上找到课程视频。该课程包括一个使用RNN生成图像描述的项目。

深度学习框架具有低级API和高级API。如果您的目标只是学习LSTM或GRU的实现,您可以使用深层学习框架的低级API来自己构建LSTM网络。框架为您提供张量操作和自动渐变的功能,您可能已经知道如何实现。

这里我以pytorch为例。您可以在pytorch https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/rnn.py中查看LSTM实现的源代码。不要害怕阅读源代码。此实现只有100行有用的代码。希望它能帮助您了解LSTM / GRU网络。