如何解决将批次传递到PyTorch模型
我正在尝试训练PyTorch LSTM模型,该模型定义为:
class RecurrentNet(torch.nn.Module):
def __init__(self,d_in,d_hidden,sequence_length):
super(RecurrentNet,self).__init__()
self.d_in = d_in
self.d_hidden = d_hidden
self.sequence_length = sequence_length
self.lstm = torch.nn.LSTM(input_size=d_in,hidden_size=d_hidden,num_layers=sequence_length)
self.fc = nn.Linear(d_hidden,1)
def forward(self,x):
out,hidden = self.lstm(x)
y_pred = F.relu(self.fc(out[-1][-1]))
return y_pred
model = RecurrentNet(28,3,l)
我已经以len 32的批量形式准备了数据,每个实例的尺寸为6 x 28,即torch.Size([6,28])
。这意味着总输入张量为大小torch.Size([32,6,28])
,标签大小为torch.Size([32,1])
。
当我将单个实例传递给未经训练的模型时,它将返回一个预期的整数。当我通过32个实例的张量时,它返回:
tensor([0.],grad_fn=<ReluBackward0>)
我希望此输入具有32 x 1的输出张量。准备训练数据时我错过了什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。