python中RNN和LSTM的基本介绍
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培训机构:千锋教育。
猜你喜欢LIKE
相关推荐HOT
更多>>python里glob模块怎么用?
python里glob模块怎么用?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。简单介绍:匹配一定的格式文件和文件夹。包含函数:1、glo...详情>>
2023-11-14 23:59:20python中time.gmtime是什么
python中time.gmtime是什么下面我们就time.gmtime函数的概念、语法、参数、返回值、实例分别进行讲解。1.概念gmtime是把日期和时间转换为格林威...详情>>
2023-11-14 21:58:02python使用OpenCV画图
python中使用OpenCV画图OpenCV的强大之处的一个体现就是其可以对图片进行任意编辑,处理。下面的这个函数最后一个参数指定的就是画笔的大小1、...详情>>
2023-11-14 19:49:08python流式读取大文件的两种方法
python流式读取大文件的两种方法1、使用read方法分块读取使用更底层的file.read()方法,与直接循环迭代文件对象不同,每次调用file.read(chunk_...详情>>
2023-11-14 16:48:08热门推荐
python里glob模块怎么用?
沸python中series转dataframe的两种方法
热python实现矩阵乘法运算的几种方法
热pandas遍历dataframe的方法有哪些
新python中time.gmtime是什么
python中RNN和LSTM的基本介绍
Python中for循环进行字典迭代
Python中哈希结构有哪几种?
python使用OpenCV画图
python绝对和相对导入的介绍
python标识符是什么意思?
python中如何查看stdin编码?
python如何访问列表元素?
python如何提取文本信息?