The reason is because you did self.hidden = self.init_hidden() in init.
After the second forward, your hidden is broadcast to batch_size 56.
You actually should move init_hidden to _forward_alg and also not save the hidden as a class variable.