循环神经网络的PyTorch实现

本文介绍了PyTorch中实现循环神经网络(RNN)的基础,包括标准RNN、LSTM和GRU。RNN用于处理序列数据,PyTorch通过nn.RNN API进行调用。LSTM相比RNN有更复杂的计算过程,参数数量为RNN的4倍,而GRU的参数是RNN的3倍。此外,还提到了RNNCell、LSTMCell和GRUCell的单步版本,适用于更灵活的序列处理。
摘要由CSDN通过智能技术生成

1.PyTorch的循环网络模块

1 标准RNN

在PyTorch中的调用也非常简单,使用 nn.RNN()即可调用,下 面依次介绍其中的参数。

input_size 表示输入的特征维度

hidden_size 表示输出h的特征维度

num_layers 表示网络层数,默认为1层

nonlinearity 表示非线性激活函数选择,默认为tanh,可以选择relu

bias 表示是否使用偏置,默认为True

batch_first 决定网络输入的维度顺序,默认网络输入是按照(seq,batch,feature)输入的,也就是序列长度放在最前面然后是批量最后是特征维度,若此参数设置为True,那么顺序就变为(batch_size,sq,feature)

dropout 此参数接受一个0~1的数值,会在网络中除最后一层之外的其他输出层加上dropout层

bidirectional 默认为False,若设置为True,就是双向循环神经网络

网络接收的输入和输出

网络会接受一个序列输入xt和记忆输入h0,xt的维度是(seq,batch,feature),分别表示序列长度、批量和输入的特征维度,h0也叫隐藏状态,他的维度是(layers*direction,batch,hidden)分别表示序列长度、批量和输出维度乘上方向(如果是单向是1,双向则是2)、批量和输出维度。
网络会输出 output和hn,output表示网络实际的输出,维度是(seq,batch, hidden*direction),分别表示序列长度、批量和输出维度乘上方向, hn表示记忆单元,维度是(layer*direction,batch,hidden),分别表 示层数乘方向、批量和输出维度。

首先建立一个简单的循环神经网络:输入维度是20、输出维度是50、两层的单向网络

basic_rnn = nn.RNN(input_size=20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值