My model architecture made a few changes so updating it
def create_emb_layer(weights_matrix, non_trainable=False):
    weights_matrix = torch.tensor(weights_matrix)
    num_embeddings, embedding_dim = 16404,50
    emb_layer = nn.Embedding(16404, 50)
    emb_layer.load_state_dict({'weight': weights_matrix})
    if non_trainable:
        emb_layer.weight.requires_grad = False

    return emb_layer, num_embeddings, embedding_dim

class Sentiglove(nn.Module):
  def __init__(self,weights_matrix):
    super().__init__()
    self.embedding, num_embeddings, embedding_dim = create_emb_layer(weights_matrix, True)
    self.conv1 = nn.Conv1d(in_channels = 48,out_channels =  32, kernel_size = 3, stride = 1)
    self.lstm = nn.LSTM(input_size = 48 , hidden_size = 100,bidirectional=True,  batch_first = True)
    self.dropout = nn.Dropout(0.3)
    self.fc = nn.Linear(100, 5)
    #self.fc = nn.Linear(6400, 5)
    if (torch.cuda.is_available()):
      self.hidden = (torch.zeros(2, 50, 100).cuda(),torch.zeros(2, 50, 100).cuda())
    else:
      self.hidden = (torch.zeros(2, 50, 100),torch.zeros(2, 50, 100))
    
  def forward(self,x):
    x = self.embedding(x)
    x = F.relu(self.conv1(x))
    lstm_out , self.hidden = self.lstm(x,self.hidden)
    out = self.dropout(self.hidden[0][-1])
    out = F.relu(self.fc(out))
    return F.log_softmax(out,dim=1)