导语:
本文主要介绍了关于python中RNN和LSTM的基本介绍的相关知识,包括python中的isalnum,以及pythonista这些编程知识,希望对大家有参考作用。
1、RNN
简单神经网络和卷积神经网络都有一个主要特点,就是它们不具备记忆能力,也就是分别处理每一个输入,前后两个输入之间没有任何关系。 .例如,如果你需要处理数据点或时间序列,则需要同时将整个时间序列呈现给网络,即将时间序列转换为单个数据点输入。使用这种输入法的网络称为前馈网络。
为了使这个过程更容易理解,我们使用简单的循环逻辑来实现 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 中使用 Tkinter 制作时钟?12/09
- ♥ Python 是计算机 2 级考试的可选项目吗?09/27
- ♥ python if 和 while 有什么区别09/06
- ♥ 什么是 python tqdm09/23
- ♥ Python是如何把数字变成中文的?09/16
- ♥ Python数学建模三剑客之Numpy12/11
内容反馈