关于LSTM的神经元数及参数个数

先上经典的LSTM结构

1、首先 tf.nn.rnn_cell.BasicLSTMCell(num_units=n)中的参数num_units指的是什么?

上图中一个浅绿色大框框起来的我们暂时叫一个LSTM_Cell,我们可以看到一个LSTM_Cell中有四个基本的神经网络Cell(即四个黄色的小框),每个小框可以说存放的是个向量,且四个框中向量长度相同,这个相同的向量长度便是num_units

2、LSTM中的参数到底有多少个?

这里假设输入向量(即xt)的长度是75,num_units=125

我们详细看张量在LSTM_Cell中是如何流动的

1)遗忘门(最左边的黄色框)

它接收的是上一时刻的隐藏状态h_{t-1}和当前时刻的输入x_{t},经过矩阵W_{f}得到另外一个向量才经过\sigma

W_{f}=\begin{bmatrix} & & \\ & & \\ & & \end{bmatrix}_{125*(125+75)}+\begin{bmatrix} \\ \\ \end{bmatrix}_{125*1}

所以这个过程的参数个数是125*(125+75)+125

2)输入门(第二个黄色框)

这个过程决定保留输入的哪些信息,由两步构成,首先是sigma层决定我们要更新哪些值,接下来tanh层对输入做一次加工(有点归一化的味道),二者得到的结果相乘后去更新LSTM_Cell的状态。这里经过了相当于两次矩阵相乘再加偏置的运算,所以这个过程的参数个数是2*(125*(125+75)+125)

3)输出门(最后一个黄色框)

可以看到隐藏状态h_{t}也有两部分组成。此过程的参数个数也是125*(125+75)+125

4)LSTM_Cell的状态更新

这一部分,没有新的参数

总之,整个过程的参数个数是:(125*(125+75)+125)*4

更一般地,若输入的长度=m,隐藏层的长度=n,则一个LSTM层的参数个数是

(n*(n+m)+n)*4

PyTorch 中的 LSTM (长短时记忆网络) 是一种常用的循环神经网络结构,用于处理序列据,尤其是自然语言处理任务。如果你想要构建一个多层 LSTM 模型,但每层的隐藏单元量不同,你可以通过堆叠 `nn.LSTM` 层来实现。这通常被称为“深度 LSTMs”或者有分层的结构。 例如: ```python import torch.nn as nn class CustomLSTM(nn.Module): def __init__(self, input_size, hidden_layers_config): super(CustomLSTM, self).__init__() # 隐藏层配置是一个列表,每个元素表示每一层的神经元量 self.hidden_layers = [] for i, num_units in enumerate(hidden_layers_config): if i == 0: # 第一层没有前一層的输出作为输入 layer = nn.LSTM(input_size, num_units) else: layer = nn.LSTM(num_units, num_units) # 后续层使用当前层的输出作为输入 self.hidden_layers.append(layer) def forward(self, inputs, hidden_state=None): prev_layer_output = inputs for layer in self.hidden_layers: output, hidden = layer(prev_layer_output, hidden_state) prev_layer_output = output # 将当前层的输出传递给下一层 return output, hidden # 创建一个模型实例,假设输入大小为10,隐藏层配置为[64, 32] input_size = 10 hidden_layers_config = [64, 32] model = CustomLSTM(input_size, hidden_layers_config) ``` 在这个例子中,模型的第一层有64个隐藏单元,第二层有32个隐藏单元。每次经过一个LSTM层,据都会经历一次编码和解码过程,以便学习更复杂的特征。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值