LSTM输出和隐藏状态输出的区别
pytorch 290
原文标题 :LSTM difference between output and hidden state output
我正在尝试为我的 AI 助手构建一个唤醒词模型,但我不知道应该将哪个输出提供给我的线性层。它们之间有什么区别,我为什么要使用您的推荐?
回复
我来回复-
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年前