So i now i have the plot of average loss per epoch, and i have sampled 100 positive and 100 negative data points (total 200 out of 25000 texts) and ran the model for 50 epochs. this is the loss vs epoch i am getting. 
Screenshot_2019-10-06 Google Colaboratory.png1212×594 61.7 KB

I have also included the model that i wrote -
class Model(nn.Module):
    def __init__(self, vocab_size, emb_dim, hid_dim, dropout = 0.5):
        super().__init__()
        self.embedding = nn.Embedding(vocab_size, emb_dim)
        self.rnn = nn.GRU(emb_dim, hid_dim)
        self.fc = nn.Linear(hid_dim, 1)
        self.dropout = nn.Dropout(dropout)
        
    def forward(self, src):
#         print(src.size())
        src = src.permute(1,0)
#         print(src.size())
        embedded = self.embedding(src)
#         print(embedded.size())
        output, hidden = self.rnn(embedded)
#         print(output[-1].size())
        out = self.fc(self.dropout(output[-1]))
#         print(out.size())
        return F.softmax(out, dim=1)

again all this is done without pre-trained embeddings, i will do this with pre-trained also and upload the results.