阅读(11.5k) 书签 (0)

TensorFlow:tf.matrix_diag函数

2018-10-31 18:02 更新
tf.matrix_diag 函数
matrix_diag(
    diagonal,
    name=None
)

参考指南:数学函数>矩阵数学函数

返回具有给定批对角线值的批对角张量.

给定一个对角线(diagonal),这个操作将返回一个带有对角线的张量,而其他所有的东西都加0.对角线的计算如下:

假设对角线具有 k 维度 [I, J, K, ..., N],则输出是秩为 k+1 且维度为 [I,J,K,...,N,N] 的张量,其中:

output[i, j, k, ..., m, n] = 1{m=n} * diagonal[i, j, k, ..., n]

例如:

# 'diagonal' is [[1, 2, 3, 4], [5, 6, 7, 8]]

and diagonal.shape = (2, 4)

tf.matrix_diag(diagonal) ==> [[[1, 0, 0, 0]
                                     [0, 2, 0, 0]
                                     [0, 0, 3, 0]
                                     [0, 0, 0, 4]],
                                    [[5, 0, 0, 0]
                                     [0, 6, 0, 0]
                                     [0, 0, 7, 0]
                                     [0, 0, 0, 8]]]

which has shape (2, 4, 4)

参数:

  • diagonal:张量;秩为 k,并且 k >= 1.
  • name:操作的名称(可选).

返回值:

该函数将返回张量,该张量与 diagonal 具有相同的类型;秩为 k+1,并且 output.shape = diagonal.shape + [diagonal.shape[-1]].