Я хочу вычислить дивергенцию KL D KL (∏q (zk | x) ‖ p (z)) в тензорном потоке
, где ∏q (zk | x) является произведением N распределений (от k = 1 до k = N), не зависящих друг от друга, типа tenorflow_probability.layers.MultivariateNormalTriL. p (z) является tfp.distributions.MultivariateNormalDiag. Расхождение KL между одиночным q (z | x) и p (z): D KL (q (z | x) ‖ p (z)) работает.
Я попытался подкласс класса Распределения tfp, чтобы создать распределение продукта Q (z) = ∏q (zk | x) и затем вычислить D KL (Q (z) ‖ p (z)), но я должен был реализовать функцию _kl_divergence, это вернуло меня к началу.
Я хотел бы решить это с вероятностью тензорного потока или, по крайней мере, тензорным потоком.