python中RNN和LSTM的基本介绍
- 更新时间:2021-06-21 08:54:24
- 编辑:姚凯旋
给大家整理了相关的编程文章,网友慎妙竹根据主题投稿了本篇教程内容,涉及到Python相关内容,已被864网友关注,内容中涉及的知识点可以在下方直接下载获取。
参考资料
- 数据科学导论:Python语言实现 PDF 电子书 / 30.2 MB / 阿尔贝托·博斯凯蒂 推荐度:
- 一起学Python PDF 电子书 / 11.4 MB / Yashavant Kanetkar 推荐度:
- Python源码剖析 PDF 电子书 / 29.1 MB / 陈儒 推荐度:
- Python机器学习及实践:从零开始通往Kaggle竞赛之路 PDF 电子书 / 48.3 MB / 范淼,李超 推荐度:
- MOOC《Python语言程序设计》第五周测试题 / 72 KB / 码小辫 推荐度:
正文内容
《python中RNN和LSTM的基本介绍》是一篇不错的Python文章,实例讲的很实用,把网友测试过的内容发布到这里,看完如果觉得有用请记得收藏。
1、RNN
简单的神经网络和卷积神经网络都有一个主要的特点,那就是都不具备记忆能力,也就是说,它们都是分别处理每一个输入,而不存在前、后两个输入之间的关系。例如,您需要处理数据点或时序,您需要同时向网络显示整个时序,也就是将时序转换为单一数据点输入。采用这种输入方式的网络叫做前向神经网络(feddforwardnetwork)。
为了使这个过程更加容易理解,我们用简单的循环逻辑来实现一个RNN的前向传播。
#简单的RNN实现Numpy实现 import numpy as np timesteps=100 input_feature=32 output_fearture=64 inputs=np.random.random((timesteps,input_feature))#生成100,32形状的矩阵 print(inputs) state_t=np.zeros((output_fearture,))#生成64个全为0的数 print(state_t) w=np.random.random((output_fearture,input_feature)) u=np.random.random((output_fearture,output_fearture)) b=np.random.random((output_fearture,)) successive_outputs=[] for input_t in inputs: output_t=np.tanh(np.dot(w,input_t)+np.dot(u,state_t)+b)#np.dot表示数组点积 successive_outputs.append(output_t) state_t=output_t final_output_sequence=np.stack(successive_outputs,axis=0) print(final_output_sequence)
2、LSTM
在理论上,RNN应该能够记住在过去的时间里看到过的信息,但是实际上它不可能学习长期存在的信息,主要是由于梯度消失的问题。因此研究人员设计了LSTM(longshort-termmemory),也就是所谓的长短期记忆。
与RNN相比,LSTM多了一种跨域携带信息的多时间步法(细胞状态C),这种步法类似于传送带,它运行方向与你所处理的序列方向平行,而序列中的信息可以随时跳到传送带上,然后被传送带送到更远的时间步,必要时还能原封不动地跳回来。那是LSTM的原理。
以上就是python中RNN和LSTM的基本介绍,希望能对大家有所帮助!
相关教程
-
python怎么输入一个列表
在Python中,用[ ]来创建列表,列表中的相邻元素之间用逗号,分隔,列表中元素的引号''和元素分割符号,都必须是英文的 。
发布时间:2019-06-27
-
对Python3中的input函数详解
下面小编就为大家分享一篇对Python3中的input函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-08-26