Python Tensorflow形状的多变量非线性诊断张量(无,输出维数,输出维数,输出维数)给定形状的μ和σ(无,3)
所以我试图用多元非线性诊断法,得到多元高斯张量 我想为mu和sigma参数提供两个形状张量(None,3),如下所示Python Tensorflow形状的多变量非线性诊断张量(无,输出维数,输出维数,输出维数)给定形状的μ和σ(无,3),python,numpy,tensorflow,batching,Python,Numpy,Tensorflow,Batching,所以我试图用多元非线性诊断法,得到多元高斯张量 我想为mu和sigma参数提供两个形状张量(None,3),如下所示 dist = tf.contrib.distributions.MultivariateNormalDiag(mu, sigma) 这样我就可以提供一组点,在这种情况下 dim_range = [float(i) for i in range(0, max_size)] points = [[a,b,c] for a in dim_range for b in dim_rang
dist = tf.contrib.distributions.MultivariateNormalDiag(mu, sigma)
这样我就可以提供一组点,在这种情况下
dim_range = [float(i) for i in range(0, max_size)]
points = [[a,b,c] for a in dim_range for b in dim_range for c in dim_range]
并检索一组密度正态分布在μ周围的点,如下所示:
gauss_tensor = tf.reshape(
dist.pdf(points),
shape=(None, output_dim, output_dim, output_dim)
)
例如,mu和sigma有形状(3,)和输出形状(output_dim,output_dim,output_dim),如果三维可视化,我们得到
对于输出_dim=16,以半随机方式选择mu和sigma,以显示每个维度的方差。可以找到一个完整的工作示例,以及一个我试图实现的示例[编辑:对于1.0以后的版本,dist.pdf(points)需要更改为dist.prob(points)]
但是,如果对未知大小的批尝试相同的方法,例如输出将是(无、输出大小、输出大小、输出大小),则在解决问题的不同方法下,所有内容都会崩溃,并出现不同的、不一致的错误消息
是否有人知道如何在不同的批次大小中实现这一点,其中每个批次元素在一批mu和一批sigma中都有相应的mu和sigma
提前感谢:)
mu_placeholder = tf.placeholder(
dtype=tf.float32,
shape=(None, None, 3),
name='mu-tensor')
[编辑:对于mus/SIGMA(无、1、3)也会给出正确的结果]
mu_placeholder = tf.placeholder(
dtype=tf.float32,
shape=(None, 1, 3),
name='mu-tensor')
一个有效的例子是来完成答案,这是一个已经讨论并修复的相关bug报告