tensorflow 学习笔记11 最简单的循环神经网络(RNN)
来源:互联网 发布:手机网络运营商无服务 编辑:程序博客网 时间:2024/06/07 18:29
RNN的主要用途是处理与预测序列数据,在语音识别、语言模型、机器翻译以及时序分析等方面应用广泛。RNN会记忆之前的信息,并利用之前的信息影响后面的节点输出。也就是说,循环神经网络的隐藏层之间的结点是有连接的,隐藏僧的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。
例如一个两轮的RNN模型:
初始W0=[0.0,0.0] Wrnn=[[0.1,0.2],[0.3,0.4],[0.5,0.6]] brnn=[0.1,-0.1] Woutput=[[1.0],[2.0]] boutout=0.1 X=[1,2]
则对应x0=1,x1=2
第一轮A里面的计算tanh([W0,x0]*Wrnn+brnn)=[0.537,0.462]将这个结果一方面输出h0=[0.537,0.462]*Woutput+boutput=1.56输出,另一方面传给下一轮的A
第二轮A里面的计算tanh([0.537,0.462,x1]*Wrnn+brnn)=[0.860,0.884]将这个结果一方面输出h1=[0.860,0.884]*Woutput+boutput=2.73输出,另一方面如果有下一轮继续传
代码实现:
import numpy as npX=[1,2]state=[0.0,0.0]#分开定义不同输入部分的权重方便操作w_cell_state=np.asarray([[0.1,0.2],[0.3,0.4]])w_cell_input=np.asarray([0.5,0.6])b_cell=np.asarray([0.1,-0.1])#定义用于输出的全连接层参数w_output=np.asarray([[1.0],[2.0]])b_output=0.1#按照时间顺序执行循环神经网络的前向传播过程for i in range(len(X)): #计算循环体中的全连接层神经网络 before_activation=np.dot(state,w_cell_state)+X[i]*w_cell_input+b_cell state=np.tanh(before_activation) #根据当前时刻状态计算最终输出 final_output=np.dot(state,w_output)+b_output print("output: h",i,final_output)
结果:
output: h 0 [ 1.56128388]output: h 1 [ 2.72707101]
阅读全文
0 0
- tensorflow 学习笔记11 最简单的循环神经网络(RNN)
- [TensorFlow]入门学习笔记(5)-循环神经网络RNN
- RNN循环神经网络学习笔记
- tensorflow 循环神经网络RNN
- tensorflow 循环神经网络RNN
- 深度学习笔记(七) RNN循环神经网络
- tensorflow 学习笔记12 循环神经网络RNN LSTM结构实现MNIST手写识别
- 深度学习:循环神经网络RNN的变体
- 【深度学习】RNN(循环神经网络)
- 循环神经网络(RNN)
- 循环神经网络(RNN)
- 循环神经网络(RNN)
- RNN(循环神经网络)
- RNN-循环神经网络-02Tensorflow中的实现
- Tensorflow实战-8循环神经网络RNN
- 循环神经网络(RNN)学习资源
- 深度学习:循环神经网络RNN
- tensorflow学习:建立一个最简单的神经网络
- CCF 网络延时
- C++如何保留两位小数输出
- SQL 函数的使用
- 游戏角色
- spring boot hibernate
- tensorflow 学习笔记11 最简单的循环神经网络(RNN)
- TRIE(字典树)模板
- cs3s简单动画
- 【Sonar代码质量检测工具】
- hdu3308 线段树 区间合并,单点跟新
- jQuery源码之DOM操作
- 图片懒加载库echo.js源码学习
- 图像批量读取(opencv C++ python)
- 使用阿里云火车票查询接口案例——CSDN博客