I used seed as: ed.set_seed(1) ed.util.set_seed(1) when I use: inference = ed.KLqp({z: qz}, data) inference.update() the loss is different.