【发布时间】:2018-08-29 23:04:29
【问题描述】:
我的最终目标是训练基于均值和协方差参数化的 4D 多元高斯分布
在哪里,
和,
目前我有以下代码:
import tensorflow as tf
import numpy as np
value = [[1,2.0,3,4,5],[0,2,4,6,8],[80,7,6,5,4]]
value=tf.constant(value)
cov= tf.slice(value,[0,int(value.shape[1])-1],[int(value.shape[0]),1])
mean= tf.slice(value,[0,0],[int(value.shape[0]),int(value.shape[1])-1])
eyes=tf.eye(int(mean.shape[1]),batch_shape=[int(value.shape[0])])
#eyes = tf.multiply(eyes,cov)
normal = tf.contrib.distributions.MultivariateNormalFullCovariance(
loc=mean,
covariance_matrix=eyes)
value = [[1,2.0,3,4,5],[0,2,4,6,8],[80,7,6,5,4]] 是其余代码可能收到的示例。
在上面的例子中
cov = <tf.Tensor 'Slice_2:0' shape=(3, 1) dtype=float32>
eyes = <tf.Tensor 'eye_1/MatrixDiag:0' shape=(3, 4, 4) dtype=float32>
cov = [[5.] [8.] [4.]]`
eyes = [[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]]`
我的问题是,在给定cov 和eyes 的情况下,如何获得result?结果如下:
result = [[[5., 0., 0., 0.],
[0., 5., 0., 0.],
[0., 0., 5., 0.],
[0., 0., 0., 5.]],
[[8., 0., 0., 0.],
[0., 8., 0., 0.],
[0., 0., 8., 0.],
[0., 0., 0., 8.]],
[[4., 0., 0., 0.],
[0., 4., 0., 0.],
[0., 0., 4., 0.],
[0., 0., 0., 4.]]]
谢谢,提前。
【问题讨论】:
标签: python tensorflow matrix matrix-multiplication