Sorry for the plenty of code, Let me make a minimal one later. I have tried that(adding a  dy.clone()  at the beginning of backward) and there was no accuracy drop and a higher final accuracy(5 percent point higher).