我需要计算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函数呢?
因此,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]将要做的伎俩.