【发布时间】:2020-02-10 12:55:05
【问题描述】:
我有一个形状为[4, 4, 2, 2] 的矩阵g,我需要在其中找到g[0, 0]、g[1, 1]、g[2, 2] 和g[3, 3] 的等级,它们都是2x2 矩阵。我使用了tf.rank 运算符,但它将g 视为单个数组并计算秩并返回整个矩阵的单个值。我需要的是一个2x2 对应g[i, j] 的等级矩阵。
以下是 MWE:
import tensorflow as tf
import numpy as np
a = np.array([
[[[ 0., 0.], [ 0., 0.]], [[-1., -1.], [-1., -1.]], [[-2., -2.], [-2., -2.]], [[-3., -3.], [-3., -3.]]],
[[[ 1., 1.], [ 1., 1.]], [[ 0., 0.], [ 0., 0.]], [[-1., -1.], [-1., -1.]], [[-2., -2.], [-2., -2.]]],
[[[ 2., 2.], [ 2., 2.]], [[ 1., 1.], [ 1., 1.]], [[ 0., 0.], [ 0., 0.]], [[-1., -1.], [-1., -1.]]],
[[[ 3., 3.], [ 3., 3.]], [[ 2., 2.], [ 2., 2.]], [[ 1., 1.], [ 1., 1.]], [[ 0., 0.], [ 0., 0.]]]
])
rank = tf.rank(a) # Returns a number
除了使用for 循环之外,还有什么方法可以得到这个秩矩阵?谢谢。
【问题讨论】:
-
在 TensorFlow 术语中,rank 只是张量的维数。你指的是rank in the linear algebra sense吗?
-
@jdehesa 我不知道这一点。是的,我的意思是线性代数意义上的等级。谢谢。
标签: python tensorflow machine-learning deep-learning rank