LSTM输出和隐藏状态输出的区别

原文标题LSTM difference between output and hidden state output

我正在尝试为我的 AI 助手构建一个唤醒词模型,但我不知道应该将哪个输出提供给我的线性层。它们之间有什么区别,我为什么要使用您的推荐?

原文链接:https://stackoverflow.com//questions/71542758/lstm-difference-between-output-and-hidden-state-output

回复

我来回复
  • ki-ljl的头像
    ki-ljl 评论

    您应该将输出提供给线性层而不是隐藏状态输出。像这样(时间序列预测):

    def forward(self, input_seq):
        h_0 = torch.randn(self.num_directions * self.num_layers, self.batch_size, self.hidden_size).to(device)
        c_0 = torch.randn(self.num_directions * self.num_layers, self.batch_size, self.hidden_size).to(device)
        seq_len = input_seq.shape[1]
        input_seq = input_seq.view(self.batch_size, seq_len, 1)
        output, _ = self.lstm(input_seq, (h_0, c_0))
        output = output.contiguous().view(self.batch_size * seq_len, self.hidden_size)
        pred = self.linear(output)
        pred = pred.view(self.batch_size, seq_len, -1)
        pred = pred[:, -1, :]
        return pred
    

    输出包含最后一层所有时间步的隐藏状态输出,隐藏状态输出只是最后一个时间步的隐藏状态。

    2年前 0条评论