LSTM学习脚步

入门
colah’s blog

Andrej Karpathy blog

论文:
Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting

代码1

8个权重分别使用8个不同的卷积进行生成。实现了多层LSTM。首先对每层的h和c进行初始化。对于同一个时间step的不同层,前一层的h层输出作为下一层的输入。
代码写的挺好,只是没有训练方法。首先在第一个时间序列的每个隐藏层之间传递,接着在第二个时间序列的隐藏层之间传递。

代码2

与代码1不同的是,没有单独生成8个权重。直接将h和输入拼接通过一个卷积层,直接生成4个输出,分别是f,i,g,o。通过这4个输出运算后得到h和c。变量解释,num_features为c和h的通道数,比如c的维度是(num_features,x,y)。filter_size为滤波器核大小。batch_size为batch大小。shape为输入和特征图大小。inp_chans为输入图像的通道数。nlayers为隐藏层个数,即多层LSTM层数。seq_len为多少个时间序列。首先在第一个隐藏层按照时间序列正向传播,然后再第二个隐藏层进行正向传播。
虽然两种传播方式不同,但是最终效果相同。

这里是一个差不多pytorch文档翻译的小教程

这里是相应的反向传播推导

猜你喜欢

转载自blog.csdn.net/sunyao_123/article/details/80594510