谱范数2x2矩阵

2024-05-15 02:50:28 发布

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

我有一个2x2矩阵,由来自其他输入的变量J00, J01, J10, J11定义。由于矩阵很小,我可以先计算迹和行列式来计算谱范数

J_T = tf.reduce_sum([J00, J11])
J_ad = tf.reduce_prod([J00, J11])
J_cb = tf.reduce_prod([J01, J10])
J_det = tf.reduce_sum([J_ad, -J_cb])

然后解二次方程

^{pr2}$

这是可行的,但它看起来很难看,而且不能推广到更大的矩阵。有没有更干净的方法来计算spectral_norm?在


Tags: 范数reduce定义tf矩阵prodadsum
1条回答
网友
1楼 · 发布于 2024-05-15 02:50:28

矩阵J的谱范数等于矩阵的最大singular value。在

因此,您可以使用^{}执行奇异值分解,并取最大的单数值:

spectral_norm  = tf.svd(J,compute_uv=False)[...,0]

其中J是矩阵。在

注意事项:

  • 我使用compute_uv=False,因为我们只对奇异值感兴趣,而不是奇异向量。在
  • J不需要是方形的。在
  • 此解决方案也适用于J具有任意数量的批处理维度(只要最后两个维度是矩阵维度)。在
  • 省略号...操作works as in NumPy。在
  • 我采用0索引,因为我们只对最大的单数值感兴趣。在

相关问题 更多 >

    热门问题