Pytorch RNN输入维度!皮托克

Pytorch RNN输入维度!皮托克,pytorch,recurrent-neural-network,tensor,Pytorch,Recurrent Neural Network,Tensor,很难将数据输入pytorch中的RNN。。 我上一个线性层的输出维度是(32,50),其中32是批量大小 我想把这个传送到RNN层。 我尝试用两种形式重塑我的数据:[32,1,50]和[32,50,1],两次都出现错误 class trainer: def __init__(): self.r = nn.RNN(input_size= 50, hidden_size=2, num_layers = 3, batch_first=True) def forw

很难将数据输入pytorch中的RNN。。 我上一个线性层的输出维度是(32,50),其中32是批量大小

我想把这个传送到RNN层。 我尝试用两种形式重塑我的数据:[32,1,50]和[32,50,1],两次都出现错误

class trainer:
    def __init__():
       self.r = nn.RNN(input_size= 50, hidden_size=2, num_layers = 3, batch_first=True)
    
    def forward(self):
       previous_layer_output 
       previous_layer_output.unsqueeze_(-1) Makes shape [32,50,1] # I also tried 
     #previous_layer_output.unsqueeze_(1) makes shape [32,1,50]
       
       rnn = self.r(previous_layer_output )
我得到以下错误:运行时错误:input.size(-1)必须等于input\u size。预期50人,获得1人

如果我执行上一层输出。取消查询(1)我会得到以下错误:
ValueError:Expected target size(32,50),got torch.size([32])为了提取并隔离问题,我编写了以下代码

import torch 
from torch import nn

rnn = nn.RNN (input_size=50, hidden_size=2, num_layers=2, batch_first=True) 
a = torch.rand(32, 50)   
a.unsqueeze_(1) 
o = rnn(a)
这对我来说很好。我不确定问题出在哪里,但可能是代码中的其他地方