【发布时间】:2021-03-05 06:20:28
【问题描述】:
我有一系列向量表示一段时间内的信号。我想将信号的一部分分为两类:1 或 0。使用 LSTM 的原因是我相信网络需要了解整个信号才能进行分类。
我的问题是开发 PyTorch 模型。下面是我想出的课程。
class LSTMClassifier(nn.Module):
def __init__(self, input_dim, hidden_dim, label_size, batch_size):
self.lstm = nn.LSTM(input_dim, hidden_dim)
self.hidden2label = nn.Linear(hidden_dim, label_size)
self.hidden = self.init_hidden()
def init_hidden(self):
return (torch.zeros(1, self.batch_size, self.hidden_dim),
torch.zeros(1, self.batch_size, self.hidden_dim))
def forward(self, x):
lstm_out, self.hidden = self.lstm(x, self.hidden)
y = self.hidden2label(lstm_out[-1])
log_probs = F.log_softmax(y)
return log_probs
但是,这个模型给出了一堆形状错误,我无法理解正在发生的一切。我先看了this SO 问题。
【问题讨论】:
标签: machine-learning pytorch classification lstm