I am new to Pytorch, Kindly help to understand error.
class LSTMClassifier(nn.Module):
def __init__(self, input_dim, seq_size, hidden_dim, label_size, batch_size, bidirectional, num_layers):

   



    super(LSTMClassifier, self).__init__()

    self.input_dim = input_dim

    self.seq_size = seq_size

    self.hidden_dim = hidden_dim

    self.batch_size = batch_size

    self.num_layers = num_layers

    self.bidirectional = bidirectional

    self.lstm = nn.LSTM(input_dim, hidden_dim, num_layers=num_layers, bidirectional=bidirectional, batch_first=True)

    self.hidden = self.init_hidden()

    self.fc = nn.Linear(hidden_dim*seq_size, 128)

    if bidirectional:

        self.fc = nn.Linear(2*hidden_dim*seq_size, 128)  

                  

    self.hidden2label = nn.Linear(128, label_size)



def init_hidden(self):

    first_size = 1

    if self.bidirectional:

        first_size = 2

    h0 = Variable(torch.zeros(first_size*self.num_layers, self.batch_size, self.hidden_dim)).float()

    c0 = Variable(torch.zeros(first_size*self.num_layers, self.batch_size, self.hidden_dim)).float()

    return (h0, c0) 

def forward(self, x):

    lstm_out, self.hidden = self.lstm(x, self.hidden)

    lstm_out = torch.squeeze(lstm_out) #original

    y = self.fc(lstm_out)

    y = F.relu(y)

    y = self.hidden2label(y)

    return y

…
/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py in linear(input, weight, bias)
1674         ret = torch.addmm(bias, input, weight.t())
1675     else:
-> 1676         output = input.matmul(weight.t())
1677         if bias is not None:
1678             output += bias
RuntimeError: size mismatch, m1: [320 x 2], m2: [20 x 128] at /pytorch/aten/src/TH/generic/THTensorMath.cpp:41