【发布时间】:2023-03-29 03:55:01
【问题描述】:
我正在尝试创建一个 RNN 前向传递方法,该方法可以采用可变的输入、隐藏和输出大小并创建所需的 rnn 单元。对我来说,似乎我正在将正确的变量传递给 self.rnn_cell——x 和前一个隐藏层的输入值。但是,我收到的错误包含在下面。
我也尝试过使用 x[i] 和 x[:,i,i] (正如我的教授所建议的那样),但无济于事。我很困惑,只是在寻找关于我是否在这里做正确的事情的指导。我的教授建议,由于我不断收到错误,我应该在 jupyter notebook 中重新启动内核并重新运行代码。我有,我收到同样的错误......
如果您需要其他上下文,请告诉我。
class RNN(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(RNN, self).__init__()
self.hidden_size = hidden_size
self.rnn_cell = nn.RNNCell(input_size, hidden_size)
self.fc = nn.Linear(hidden_size, output_size)
self.softmax = nn.LogSoftmax(dim=1)
def forward(self, x):
"""
x: size [seq_length, 1, input_size]
"""
h = torch.zeros(x.size(1), self.hidden_size)
for i in range(x.size(0)):
### START YOUR CODE ###
h = self.rnn_cell(x[:,:,i], h)
### END YOUR CODE ###
### START YOUR CODE ###
# Hint: first call fc, then call softmax
out = self.softmax(self.fc(self.hidden_size, h.size(0)))
### END YOUR CODE ###
return out
IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
【问题讨论】:
标签: python machine-learning pytorch recurrent-neural-network