没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
17页
循环神经网络(Recurrent Neural Network, RNN)是以 序列(Sequence)数据作为输入,沿序列的演进方向进行 递归(Recurrent)且所有循环单元节点按链式连接的一类神经网络。循环神经网络具有记忆性,对序列数据的非线性特征进行学习时具有一定优势。还有 RNN 的加强版 长短期记忆网络(LSTM, Long Short-Term Memory)和 门控循环单元网络(GRU, Gated Recurrent Unit networks)拥有更强的“记忆力”。
资源推荐
资源详情
资源评论
https://blog.csdn.net/xietansheng/article/details/131712791?spm=1001.2014.3001.5501
1/17
PyTorch
实
现
循
环
神
经⽹络
(
RNN
)
、
⻓
短
期
记
忆
⽹络
(
LSTM
)
、
⻔
控
循
环
单
元
⽹络
(
GRU
)
谢
TS
于
2023-07-13 22:21:34
发
布
原
⽂
链
接
:
https://xiets.blog.csdn.net/article/details/131712791
版
权
声
明
:
原
创
⽂
章禁
⽌
转载
专
栏
⽬
录
:
PyTorch
专
栏
(
总
⽬
录
)
PyTorch
相
关
⽹
站
:
PyTorch
官
⽹
:
https://pytorch.org/
PyTorch API
:
https://pytorch.org/docs/stable/torch.html
循
环
神
经⽹络
(
Recurrent Neural Network, RNN
)
是
以
序
列
(
Sequence
)
数据
作为
输
⼊
,
沿
序
列
的
演
进
⽅
向
进
⾏
递
归
(
Recurrent
)且
所
有
循
环
单
元
节
点
按
链
式
连
接
的
⼀
类
神
经⽹络
。
循
环
神
经⽹络
具
有
记
忆性
,
对
序
列
数据
的
⾮
线
性
特
征
进
⾏
学
习
时
具
有
⼀
定
优
势
。
还
有
RNN
的
加
强
版
⻓
短
期
记
忆
⽹络
(
LSTM, Long Short-Term Memory
)
和
⻔
控
循
环
单
元
⽹络
(
GRU, Gated Recurrent Unit networks
)
拥
有更
强
的
“
记
忆
⼒
”
。
循
环
神
经⽹络
相
关
模
型
:
recurrent-layers
1.
循
环
神
经⽹络
:
RNN
RNN
相
关
类
:
nn.RNNCell
:
具
有
tanh
或
ReLU
⾮
线
性
的
RNN
单
元
。
nn.RNN
:
⽤
于
序
列
输
⼊
的
多
层
tanh
或
ReLU
⾮
线
性
RNN
单
元
(
包
含
多
层
RNNCell
的
神
经⽹络
层
)
。
普
通
神
经⽹络
的
数据
是
单向
传
递
的
,
⽽
循
环
神
经⽹络
(
RNN
)
的
数据
是
循
环
传
递
的
,
即后
⾯
的
输
⼊
依
赖
于
前
⾯
的
输
出
。
例
如
样本
x
和
⼀个
隐
藏
向
量
h
⼀
起
输
⼊
RNN
⽹络
层
处
理
后
输
出
y
和
h
,
y
就
是样本
x
对
应
的
输
出
,
⽽
h
作为
下⼀
次
输
⼊
的
⼀
部
分
和
x
⼀
起
输
⼊
⽹络
层
得
到
y
和
h
,
以
此
不
断
循
环
传
递
。
对
于
⾸
个
样本
(
⾸
次
输
⼊
)
x
,
需
要
⼿
动
或
⾃
动初
始
化
⼀个
初
始
隐
藏
向
量
h
。
循
环
神
经⽹络
(
RNN
)
结
构
示
意
图
:
t t
t t+1 t t t+1 t+1 t+1 t+2
0 0
PyTorch
深
度
学
习
/…
专
栏
收
录
该
内
容
9
篇
⽂
章
1000
订
阅
内
容
来
源
:
csdn.net
作
者
昵
称
:
谢
TS
原
⽂
链
接
:
https://xiets.blog.csdn.net/article/details/131712791
作
者
主
⻚
:
https://xiets.blog.csdn.net
https://blog.csdn.net/xietansheng/article/details/131712791?spm=1001.2014.3001.5501
2/17
由
于
循
环
神
经⽹络
的
循
环
和
记
忆
特
性
,
因
此
⾮
常
适
合
⽤
于
处
理
序
列
问题
。
例
如
:
将
英
⽂
翻
译
成
中
⽂
时
,
输
⼊
的
是
英
⽂
句
⼦
,
输
出
的
是
中
⽂
句
⼦
;
⽤
于
语
⾳
识
别
时
,
输
⼊
的
是
⾳频
数据
序
列
,
输
出
的
是
⽂
本
序
列
。
再
⽐
如
根
据
过
去
N
天
的
天
⽓
预
测
未来
的
天
⽓
等
。
1.1 nn.RNNCell
类
nn.RNNCell
是
循
环
神
经⽹络
(
RNN
)
中
隐
藏
层
的
基
础
单
元
,
其
结
构
示
意
图
:
RNNCell
数
学
表
达
式
:
h’ = tanh(W *x + b + W *h + b )
,
如
果
⾮
线
性
是
“relu”
,
则
使
⽤
ReLU
替
换
tanh
。
从
公
式
可
以
看
出
,
RNNCell
的
数
学
本
质
是
将
x
和
h
分别
进
⾏
线
性
变
换
并
相
加
,
随
后
经
过
⾮
线
性
激
活
函
数
,
得
到
下⼀个
输
⼊
的
h
。
nn.RNNCell
类
详
情
:
ih ih hh hh
t t t+1
内
容
来
源
:
csdn.net
作
者
昵
称
:
谢
TS
原
⽂
链
接
:
https://xiets.blog.csdn.net/article/details/131712791
作
者
主
⻚
:
https://xiets.blog.csdn.net
https://blog.csdn.net/xietansheng/article/details/131712791?spm=1001.2014.3001.5501
3/17
class torch.nn.RNNCell(input_size, hidden_size, bias=True, nonlinearity='tanh', device=None, dtype=None)
"""
具
有
tanh
或
ReLU
⾮
线
性
的
RNN
单
元
(
是
⼀个
nn.Module),
⽀
持
单
样本
处
理
和
批
样本
处
理
。
参
数
:
input_size (int)
输
⼊
x
中
预
期
的
特
征
数
量
(
单
个
样本
的
特
征
数
)
hidden_size (int)
隐
藏
状
态
h
中
的
特
征
数
bias (bool)
如
果是
False,
则
该
层
不
使
⽤
偏
置
权
重
b_ih
和
b_hh,
默
认
为
True
nonlinearity (str)
要
使
⽤
的
⾮
线
性
函
数
,
可
以
是
"tanh"
或
"relu",
默
认
为
"tanh"
输
⼊
: input, hidden
input (Tensor)
包
含
输
⼊
特
征
的
张
量
hidden (Tensor)
包
含
初
始
隐
藏
状
态
的
张
量
,
如
果未
提
供
则
默
认
为
zeros
。
输
出
: hidden'
hidden' (Tensor)
包
含
批
次
中
每
个
样本
的
下⼀个
隐
藏
状
态张
量
形
状
:
input: (N, H_in)
或
(H_in,)
包
含
输
⼊
特
征
的
张
量
, H_in = input_size, H_in
表
示
单
个
样本
的
输
⼊
特
征
数
量
。
如
果
输
⼊
的
是
单
个
样本
数据
,
则
形
状
为
(H_in,);
如
果是
批
处
理
,
则
形
状
为
(N, H_in), N
表
示
批
⼤
⼩
(
样本
数
量
)
。
hidden: (N, H_out)
或
(H_out,)
包
含
初
始
隐
藏
状
态
的
张
量
, H_out = hidden_size,
如
果未
提
供
则
默
认
为
zeros
张
量
。
如
果
输
⼊
的
是
单
个
样本
数据
,
则
形
状
为
(H_out,);
如
果是
批
处
理
,
则
形
状
为
(N, H_out), N
表
示
批
⼤
⼩
(
对
应
输
⼊
的
每
⼀个
样本
)
。
output (hidden'): (N, H_out)
或
(H_out,)
包
含
⽤
于
下⼀个
样本
的
输
⼊
的
隐
藏
状
态张
量
, H_out = hidden_size
。
如
果
输
⼊
的
是
单
个
样本
数据
,
则
形
状
为
(H_out,);
如
果是
批
处
理
,
则
形
状
为
(N, H_out), N
表
示
批
⼤
⼩
(
对
应
输
⼊
的
每
⼀个
样本
)
。
变
量
:
weight_ih (Tensor)
可
学
习
的
输
⼊
隐
藏
权
重
(input-hidden weights),
形
状
为
(hidden_ size, input_size)
weight_hh (Tensor)
可
学
习
的
隐
藏
权
重
(hidden-hidden weights),
形
状
为
(hidden_ size, hidden_ size)
bias_ih
可
学
习
的
输
⼊
隐
藏
偏
差
(input-hidden bias),
形
状
为
(hidden_ size)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
内
容
来
源
:
csdn.net
作
者
昵
称
:
谢
TS
原
⽂
链
接
:
https://xiets.blog.csdn.net/article/details/131712791
作
者
主
⻚
:
https://xiets.blog.csdn.net
https://blog.csdn.net/xietansheng/article/details/131712791?spm=1001.2014.3001.5501
4/17
nn.RNNCell
类
代
码
示
例
:
bias_hh
可
学
习
的
隐
藏
偏
差
(hidden-hidden bias),
形
状
为
(hidden_ size,)
"""
import torch
from torch import nn
#
创
建
RNNCell (nn.Module)
实
例
,
样本
输
⼊
特
征
数
为
2,
隐
藏
状
态
特
征
数
为
3
rnn_cell = nn.RNNCell(input_size=2, hidden_size=3, dtype=torch.float32)
print(rnn_cell)
#
输
出
: RNNCell(2, 3)
# -------------------------------------------------------------------------------------
#
输
⼊
数据
(
单
样本
,
有
2
个
特
征
)
input0 = torch.tensor([1, 2], dtype=torch.float32)
#
初
始
隐
藏
状
态
(
和
input0
⼀
起
输
⼊
RNNCell
单
元
隐
藏
状
态张
量
,
有
3
个
特
征
)
hidden0 = torch.tensor([1, 2, 3], dtype=torch.float32)
#
输
⼊
RNNCell
单
元
(
单
样本
输
⼊
),
返
回
输
⼊
⽤
于
下⼀个
样本
输
⼊
的
隐
藏
状
态张
量
hidden1 = rnn_cell(input0, hidden0)
print(hidden1)
#
输
出
: tensor([0.2513, 0.9635, 0.6665], grad_fn=<SqueezeBackward1>)
# -------------------------------------------------------------------------------------
#
下⼀个
输
⼊
数据
(
下⼀个
样本
)
input1 = torch.tensor([3, 4], dtype=torch.float32)
#
把
当
前
输
⼊
和
上⼀个
样本
返
回
的
隐
藏
状
态张
量
⼀
起
输
⼊
RNNCell,
返
回
输
⼊
⽤
于
下⼀个
样本
输
⼊
的
隐
藏
状
态张
量
hidden2 = rnn_cell(input1, hidden1)
print(hidden2)
#
输
出
: tensor([0.8123, 0.8857, 0.9854], grad_fn=<SqueezeBackward1>)
# -------------------------------------------------------------------------------------
#
再
下⼀个
数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
内
容
来
源
:
csdn.net
作
者
昵
称
:
谢
TS
原
⽂
链
接
:
https://xiets.blog.csdn.net/article/details/131712791
作
者
主
⻚
:
https://xiets.blog.csdn.net
剩余16页未读,继续阅读
资源评论
谢TS
- 粉丝: 1w+
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功