问题标签 [bilstm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
216 浏览

python - 如何为 biLSTM 层 Keras 设置自定义初始权重?

我目前正在构建带有注意力的 BiLSTM,并使用 Antlion 算法优化 BiLSTM 层权重。Antlion 算法在 MATLAB 代码中,我能够集成 Python 和 MATLAB 来接收优化的权重,如下所示:

我目前面临着将权重和偏差设置为 BiLSTM 层的问题,如下面的模型中创建的(没有设置自定义初始权重):

我尝试了以下方法:

但是一旦编译模型,权重和偏差就会改变......即使内核,循环和偏差初始化器设置为无......

我已经提到了这个链接:https://keras.io/api/layers/initializers/但无法将它与我的问题联系起来......

如果你们能提供解决此问题的见解,以及我遗漏的任何基本部分,我将不胜感激。如果需要,我很乐意分享更多细节。

谢谢!

0 投票
1 回答
170 浏览

python - 使用 pack_padded_sequence - pad_packed_sequence 时训练精度下降和损失增加

我正在尝试使用 pack_padded_sequence 和 pad_packed_sequence 训练双向 lstm,但是随着损失的增加,准确性不断下降。

这是我的数据加载器:

这是我的模型课:

如果我删除 pack_padded_sequence - pad_packed_sequence,模型训练工作得很好:

0 投票
0 回答
752 浏览

python-3.x - ValueError: 目标尺寸 (torch.Size([8])) 必须与输入尺寸 (torch.Size([8, 2])) 相同

我正在尝试使用 BERT 实现情感分析代码(正面或负面标签),我想添加一个 BiLSTM 层,看看我是否可以提高 HuggingFace 预训练模型的准确性。我有以下代码和几个问题:

所以在上面的代码中我遇到了错误: Target size (torch.Size([8])) must be the same as input size (torch.Size([8, 2]))。在线检查并尝试使用targets = targets.unsqueeze(2),但后来我收到另一个错误,我必须使用 [-2,1] 中的值进行解压。我还尝试将损失函数修改为

但我仍然收到同样的错误。有人可以建议是否有解决此问题的方法?或者我该怎么做才能使这项工作正常进行?提前谢谢了。

0 投票
0 回答
72 浏览

bert-language-model - RuntimeError:输入必须有 3 个维度,得到 4

任何帮助将不胜感激,下面是我的代码,我收到了上述错误。我遵循我在网上找到的一些代码片段。不太清楚如何处理错误。我正在尝试创建一个使用 BERT 作为上游的模型,然后在被 softmax 分类之前注意输入 BiLSTM。

这是完整错误的图像: 在此处输入图像描述

0 投票
0 回答
48 浏览

tensorflow - 双向 LSTM 的 Lambda 警告

我正在尝试实现双向 LSTM,但收到以下警告。我不完全确定这意味着什么。我的模型是否仍会按照我的预期从传递给 LSTM 的输入中学习?

这是我的代码的一部分:

0 投票
0 回答
52 浏览

tensorflow - 如何在 Keras 的每个时间步之后重置 LSTM 中的隐藏状态?

我有一个 BiLSTM,我通过序列抛出它,前向和后向 LSTM 使用 previos 序列输出,就像初始隐藏状态一样。它对前向 LSTM 有利,但对后向 LSTM 不利,因为当它以这种方式工作时,前向 LSTM 状态正在跳过序列。那么对于每个时间步,我可以将 BiLSTM 的后向部分重置为零初始状态吗?

这里有一个小例子:

在此处输入图像描述

0 投票
0 回答
108 浏览

nlp - pytorch 中的自注意力实现

我正在研究一个 bi-lstm+ 注意力 NER 模型,我正在关注这篇论文:Long Short-Term Memory-Networks for Machine Reading ( https://arxiv.org/pdf/1601.06733.pdf )

在此处输入图像描述

我只是想知道我是否正确实施,因为它没有提高性能?谢谢

0 投票
0 回答
39 浏览

keras - 层 time_distributed_30 的输入 0 与层不兼容:预期 ndim=5,发现 ndim=4。收到的完整形状:(无,无,无,无)

  1. 我正在尝试用 10 个类对 MSTAR 数据集进行分类
  2. 我使用了包含 15 个时间步长的 DCNN 和 BILSTM 的模态

我的问题是:

  1. 如何克服错误
  2. 如何得到好的分类结果。

我的代码是:

0 投票
0 回答
99 浏览

neural-network - 关于 Stacked BiLSTM(多层 BiLSTM)的问题

我注意到单层 BiLSTM 由两个独立的(单向)LSTM 层组成,一个用于正向,另一个用于反向。然后两个 LSTM 层的输出将与hiddendim (always dim = -1) 连接在一起,形成这个 BiLSTM 层的输出。

而对于多层模型,每个内层都接受上一层的输出,然后将计算结果输出到下一层。

到目前为止,没有任何歧义。

但是对于多层 BiLSTM,我发现了一些歧义。由于每个 BiLSTM 层都有两个独立的 LSTM,我不知道内层接受的正确输入。

上一层的连接输出?(如果这是真的,这意味着input_size内部 LSTM 层的,无论是从左到右还是从右到左,都是2 * (hidden_size of the previous layer))(参见这个实现)(参见这张图片来自:Illustrating the use of two BiLSTMs for Semantic角色标签。来源:He et al. 2017,图 1。

或者将多层 BiLSTM 视为两个单向多层 LSTM(一个用于 left_to_right,另一个用于 right_to_left),每个单向 LSTM 只接受前一层的输出。那么,在两次多层单向LSTM计算完成后,我们将每一层的从左到右和从右到左的输出连接起来,形成每个BiLSTM层的输出?(见这张图片来自:使用深度神经网络的多通道心电图信号中的心律失常分类:Kim. 2018,图 3.2)

0 投票
0 回答
35 浏览

pytorch - ValueError:使用 RNN 分类器解包的值太多(预期为 2)

您好,我在尝试使用 pytorch 训练 RNN 分类器时遇到此错误。我希望有人可以帮助我解决它或解释我的原因。

这是它发生的错误