有没有办法在TensorFlow中提取方阵的对角线?也就是说,对于这样的矩阵:
[
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]
]
Run Code Online (Sandbox Code Playgroud)
我想获取元素: [0, 4, 8]
在TensorFlow中,有一个diag函数,但它只与对角线上的参数中指定的元素形成一个新的矩阵,这不是我想要的.
我可以想象如何通过跨步来实现这一目标...但我不认为在TensorFlow中争取张量.
目前可以使用tf.diag_part提取对角线元素。这是他们的例子:
"""
'input' is [[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]]
"""
tf.diag_part(input) ==> [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
旧答案(当 diag_part 时)不可用(如果您想实现现在不可用的东西,仍然相关):
在查看了数学运算和张量变换之后,看起来并不存在这样的运算。即使您可以通过矩阵乘法提取此数据,它也不会有效(得到对角线是O(n))。
您可以采用三种方法,从易到难。
tf.shape| 归档时间: |
|
| 查看次数: |
9265 次 |
| 最近记录: |