gpt4 book ai didi

python - 如何在 tensorflow 中获得协方差矩阵?

转载 作者:太空狗 更新时间:2023-10-30 02:01:39 25 4
gpt4 key购买 nike

如何在 tensorflow 中获取协方差矩阵?就像 numpy 中的 numpy.cov() 一样。

例如,我想获取张量 A 的协方差矩阵,现在我必须改用 numpy

    A = sess.run(model.A, feed)
cov = np.cov(np.transpose(A))

有没有办法通过 tensorflow 而不是 numpy 来获取 cov

这与问题不同 how to compute covariance in tensorflow ,他们的问题是计算两个向量的协方差,而我的问题是使用 tensorflow API 有效地计算矩阵(二维张量)的协方差矩阵

最佳答案

这已经晚了几个月,但无论如何发布是为了完整性。

import numpy as np
import tensorflow as tf

def tf_cov(x):
mean_x = tf.reduce_mean(x, axis=0, keep_dims=True)
mx = tf.matmul(tf.transpose(mean_x), mean_x)
vx = tf.matmul(tf.transpose(x), x)/tf.cast(tf.shape(x)[0], tf.float32)
cov_xx = vx - mx
return cov_xx

data = np.array([[1., 4, 2], [5, 6, 24], [15, 1, 5], [7,3,8], [9,4,7]])

with tf.Session() as sess:
print(sess.run(tf_cov(tf.constant(data, dtype=tf.float32))))


## validating with numpy solution
pc = np.cov(data.T, bias=True)
print(pc)

关于python - 如何在 tensorflow 中获得协方差矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47709854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com