thereblue
2021-01-25 23:45
采纳率: 50%
浏览 577
已采纳

关于使用pytorch构建GRU

我使用了pytroch实现了GRU,调用了原有的模型,然后先是报了输入数据缺少维度的问题,当我使用

X_train = X_train.reshape( X_train.shape[0], 1, X_train.shape[1])之后,在loss函数却出现了ValueError: Expected target size (128, 10), got torch.Size([128])的报错,

我不清楚为什么会有这个问题,因为原本的BPNN的代码中也是这样使用的loss函数,没有问题,这里的loss函数使用的是交叉熵损失

loss_function = torch.nn.CrossEntropyLoss(),我也知道这个错误是维度的问题,可是怎么改,我毫无头绪,请大佬指点

函数

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

8条回答 默认 最新

  • 歇歇 2021-01-26 07:36
    最佳回答

    具有batch_first = True [batch_size,seq_len,features]`的output张量。

    根据您的描述,我想您想使用上一步骤的激活进行分类,因此您可能希望通过以下方式对其进行切片:

    nn.LSTMis returned in the shape

    lstm_out, hidden = self.lstm(embeddings_out, hidden)
    lstm_out = lstm_out[:, -1]
    

    并进一步处理该张量。

    评论
    解决 无用
    打赏 举报
查看更多回答(7条)

相关推荐 更多相似问题