计算n维平方十的超行列式

2024-04-16 23:51:48 发布

您现在位置:Python中文网/ 问答频道 /正文

为了计算形状为(n, n, n, ...., n)的张量的generalized variance,我想计算用tfp.stats.covariance得到的covariance of a Tensorhyperdeterminant。你知道吗

假设您有一个张量T以下语法适用于Tensorflow 2.0

import tensorflow as tf
import numpy as np

T = tf.constant(np.random.random(size=(1000, 100, 100)))

得到的张量的形状是(1000, 100, 100)。你知道吗

为了确定它的协方差,我们使用tfp.stats.covariance

import tensorflow_probability as tfp

@tf.function() # To evaluate graph.
def covariance(T):
    return tfp.stats.covariance(T)

cov = covariance(T)

得到的张量cov具有形状(100, 100, 100)。我现在很想计算它的超行列式,但是TensorFlowtf.linalg.det中的实现是在形状(m, m)的平方矩阵的形状(n, m, m)的向量上定义的,因此计算m行列式,每个矩阵一个。你知道吗

@tf.function() # To evaluate graph.
def determinant(T):
    return tf.linalg.det(T)

det = determinant(cov)

得到的张量det具有(100,)形状。你知道吗

对于任何给定的具有(n, n, n, ..., n)形状的超立方张量,如何得到标量超行列式?你知道吗

谢谢!你知道吗

参考资料

由于几乎没有关于超立方体的超行列式的材料,我在这里列出一些关于这个问题的开创性论文:


Tags: ofimporttftensorflowasstatsnpfunction