Вот код
tfd = tfp.distributions
tfb = tfp.bijectors
# A common choice for a normalizing flow is to use a Gaussian for the base
# distribution. (However, any continuous distribution would work.) E.g.,
nvp = tfd.TransformedDistribution(
distribution=tfd.MultivariateNormalDiag(loc=[0., 0., 0.]),
bijector=tfb.RealNVP(
num_masked=2,
shift_and_log_scale_fn=tfb.real_nvp_default_template(
hidden_layers=[512, 512])))
x = nvp.sample((32,32))
x = nvp.sample((32,32))
дает мне тензор с 32x32x3
формой. Но, бросая x
в nvp.log_prob(x)
, я получаю тензор формы 32x32
. Я ожидал (1,)
подобного тензора, поскольку хочу получить log_prob
этого 32,32,3
тензора.
Итак, проблема в том, как повозиться с кодом выше для вычисления log_prob
из 32x32x3
тензор формы?