Solved by iffiX in post #3 
              
              
                probably because requires_grad has changed the gradient flow through action log probability. 
BTW: 
reward_list = torch.tensor(reward_list, requires_grad = True)    

There is no need to add requires_grad here