Я не уверен, что градиенты взрыва являются типичными для VAE. Это может быть другая проблема в вашем коде. Однако взрывные градиенты обычно решаются с помощью градиентного отсечения:
weights = weights*clipping_threshold/l2_norm(weights)
Где clipping_threshold равен 1.