python中RNN和LSTM的基本介绍

来源:千锋教育
发布时间:2023-11-12 21:29:16
分享

python中RNN和LSTM的基本介绍

1、RNN

简单的神经网络和卷积神经网络都有一个主要的特点,那就是都不具备记忆能力,也就是说,它们都是分别处理每一个输入,而不存在前、后两个输入之间的关系。例如,您需要处理数据点或时序,您需要同时向网络显示整个时序,也就是将时序转换为单一数据点输入。采用这种输入方式的网络叫做前向神经网络(feddforwardnetwork)。

为了使这个过程更加容易理解,我们用简单的循环逻辑来实现一个RNN的前向传播。

#简单的RNN实现Numpy实现

importnumpyasnp

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=[]

forinput_tininputs:

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学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python如何对Python数据表进行检查 如何对Python数据表进行检查在python中处理的数据量通常会比较大,例如千万级数据,而且我们不能一目了然地了解整个数据表,而且必须通过某种方法获得关于数据表的关键信息。DataTableChec
  • Python itemgetter函数怎么用? pythonitemgetter函数怎么用?Operator模块中也有一类函数可以作为条件过滤。首先介绍itemgetter函数。假设定义了一个f函数,f=itemgetter(2),那么如果调用f(
  • python中remove()方法如何使用删除后的值? python中remove()方法如何使用删除后的值?有时,您可能不知道列表中元素的索引,但只要您知道该值,您就可以根据该值删除该元素。remove()方法可以使用。remove()方法将不返回已删除
  • Python中Operator计算函数 python中Operator计算函数使用Operator模块中的mul函数来实现阶乘:fromoperatorimportmuldeffactWithMul(n):returnreduce(mul,
  • python中如何查看stdin编码? python中如何查看stdin编码?1、通过Pythonsys库查看$pythonPython2.7.6(default,Nov132018,12:45:42)[GCC4.8.4]onlinux2T
  • python中列表的索引如何理解? python中列表的索引如何理解?一、python中列表的索引介绍:第一个列表要素的索引为0,很多编程语言都是这样规定的,这与列表操作的基础有关。第二个列表要素的索引值为1,根据该访问方式,访问任何要