thereblue
thereblue
采纳率100%
2021-01-25 23:45 阅读 189

关于使用pytorch构建GRU

50

我使用了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条回答 默认 最新

  • 已采纳
    bill20100829 歇歇 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]
    

    并进一步处理该张量。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-26 06:20

    你的 shape 是不是(128,?, 10)?查查看。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-26 06:24

    print(x.shape)

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-26 06:27
    你error说 :                这里是128                这个消失了
    X_train = X_train.reshape( X_train.shape[0], 1, X_train.shape[1])
    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-26 06:44

    对不起,看反了。你是少了数据。你的码show来看看。

    点赞 评论 复制链接分享
  • bill20100829 歇歇 2021-01-26 07:23

    代码不完整,值出现问题

    点赞 评论 复制链接分享
  • bill20100829 歇歇 2021-01-26 07:34

    “预期的目标尺寸{},得到了{}”,目标尺寸错误,请从train_dataloader检查标签。

    点赞 评论 复制链接分享
  • bill20100829 歇歇 2021-01-26 07:42

    x_train=x_train.reshape((x_train.shape[0],x_train.shape[1],1))

    修改一下

    点赞 评论 复制链接分享

相关推荐