- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 tensorflow/keras 中,我们可以简单地设置 return_sequences = False
对于分类/完全连接/激活(softmax/sigmoid)层之前的最后一个 LSTM 层,以摆脱时间维度。
在 PyTorch 中,我没有找到类似的东西。对于分类任务,我不需要序列到序列模型,而是像这样的多对一架构:
这是我的简单双 LSTM 模型。
import torch
from torch import nn
class BiLSTMClassifier(nn.Module):
def __init__(self):
super(BiLSTMClassifier, self).__init__()
self.embedding = torch.nn.Embedding(num_embeddings = 65000, embedding_dim = 64)
self.bilstm = torch.nn.LSTM(input_size = 64, hidden_size = 8, num_layers = 2,
batch_first = True, dropout = 0.2, bidirectional = True)
# as we have 5 classes
self.linear = nn.Linear(8*2*512, 5) # last dimension
def forward(self, x):
x = self.embedding(x)
print(x.shape)
x, _ = self.bilstm(x)
print(x.shape)
x = self.linear(x.reshape(x.shape[0], -1))
print(x.shape)
# create our model
bilstmclassifier = BiLSTMClassifier()
xx = torch.tensor(X_encoded[0]).reshape(1,512)
print(xx.shape)
# torch.Size([1, 512])
bilstmclassifier(xx)
#torch.Size([1, 512, 64])
#torch.Size([1, 512, 16])
#torch.Size([1, 5])
(1, 16)
的张量而不是
(1, 512, 16)
?
最佳答案
最简单的方法是索引张量:
x = x[:, -1, :]
x
是 RNN 输出。当然,如果
batch_first
是
False
,必须使用
x[-1, :, :]
(或只是
x[-1]
)改为索引到时间轴。事实证明,这与 Tensorflow/Keras 所做的相同。相关代码可以在
K.rnn
中找到
here :
last_output = tuple(o[-1] for o in outputs)
time_major
数据格式,所以索引在第一个轴上。另外,
outputs
是一个元组,因为它可以是多个层、状态/单元对等,但它通常是所有时间步长的输出序列。
RNN
中使用它类如下:
if self.return_sequences:
output = K.maybe_convert_to_ragged(is_ragged_input, outputs, row_lengths)
else:
output = last_output
return_sequences=False
只是使用
outputs[-1]
.
关于python-3.x - `return_sequences = False` 在 pytorch LSTM 中等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62204109/
我有一个 Tensorflow/Keras 模型: self.model.add(Bidirectional(LSTM(lstm1_size, input_shape=(
我尝试通过附加三层 ConvLSTM 进行建模,但是当我在第一个 ConvLSTM 中设置 return_sequence = False 时,程序将无法运行。 查看模型摘要 Model summar
在 tensorflow/keras 中,我们可以简单地设置 return_sequences = False对于分类/完全连接/激活(softmax/sigmoid)层之前的最后一个 LSTM 层,
我有一个像下面这样的对话语料库。我想实现一个预测系统 Action 的 LSTM 模型。系统 Action 被描述为位向量。并且用户输入被计算为一个词嵌入,它也是一个位向量。 t1: user: "D
我在 RNN 工作。我有来自某个网站的以下代码行。如果您观察到第二层没有“returnSequence”参数。 我假设返回序列是强制性的,因为它应该返回序列。您能告诉我为什么没有定义吗? 第一层
我正在尝试重新实现这篇论文1作者在 Keras 中使用 PyTorch 2 。这是网络架构: 到目前为止我所做的是: number_of_output_classes = 1 hidden_size
我有一个要分类的序列,使用带有 return_sequences=True 的 Keras LSTM。我有“数据”和“标签”数据集,它们都是相同的形状——二维矩阵,按位置行,按时间间隔列(单元格值是我
我是一名优秀的程序员,十分优秀!