TensorFlow中的矩阵规范

Sam*_*mbo 7 python tensorflow

我需要计算Frobenius规范,以便使用TensorFlow框架实现此公式:

式

其中w是一个包含50行和100列的矩阵.

我试着写点什么,但我不明白如何填写axis论点.

tf.pow(
    tf.norm(x, ord='fro', axis=?), 2
)
Run Code Online (Sandbox Code Playgroud)

根据TensorFlow文档,我必须使用2元组(或2个列表),因为它确定了计算矩阵范数的张量中的轴,但我只需要一个简单的Frobenius范数.在SciPy,例如,我可以不用指定任何轴.

那么,我应该使用什么axis来模拟SciPy函数呢?

Gra*_*per 6

因此,Frobenius范数是nxm矩阵的总和,但tf.norm允许批量处理多个向量和矩阵.

为了更好地理解,想象你有一个等级3张量:

t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]

它可以看作是在一个方向上对齐的几个矩阵,但是该函数不能自己计算哪个矩阵.它可以是一批以下矩阵:

[2, 4, 6] , [8 ,10, 12], [14, 16, 18]

要么

[2 8 14], [4, 10, 16], [6, 12, 18]

所以基本上axis告诉你在Frobenius规范中进行求和时要考虑哪些方向.

在你的情况下,任何[1,2][-2,-1]将要做的伎俩.