tensorflow :: opérations :: MatrixDiagV2
#include <array_ops.h>
Renvoie un tenseur diagonal groupé avec des valeurs diagonales groupées données.
Résumé
Renvoie un tenseur dont le contenu est en diagonal
sous la forme de k[0]
-th à k[1]
-th diagonales d'une matrice, avec tout le reste rempli de padding
. num_rows
et num_cols
spécifient la dimension de la matrice la plus interne de la sortie. Si les deux ne sont pas spécifiés, l'op suppose que la matrice la plus interne est carrée et déduit sa taille à partir de k
et de la dimension la plus interne de la diagonal
. Si un seul d'entre eux est spécifié, l'opération suppose que la valeur non spécifiée est la plus petite possible en fonction d'autres critères.
Soit la diagonal
r
dimensions [I, J, ..., L, M, N]
. Le tenseur de sortie est de rang r+1
de forme [I, J, ..., L, M, num_rows, num_cols]
lorsqu'une seule diagonale est donnée ( k
est un entier ou k[0] == k[1]
) . Sinon, il a le rang r
avec la forme [I, J, ..., L, num_rows, num_cols]
.
La deuxième dimension la plus profonde de la diagonal
a une double signification. Lorsque k
est scalaire ou k[0] == k[1]
, M
fait partie de la taille du lot [I, J, ..., M] et le tenseur de sortie est:
output[i, j, ..., l, m, n] = diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper output[i, j, ..., l, m, n] ; otherwise
Sinon, M
est traité comme le nombre de diagonales de la matrice dans le même lot ( M = k[1]-k[0]+1
), et le tenseur de sortie est:
output[i, j, ..., l, m, n] = diagonal[i, j, ..., l, k[1]-d, n-max(d, 0)] ; if d_lower <= d <= d_upper input[i, j, ..., l, m, n] ; otherwiseoù
d = n - m
Par example:
# The main diagonal. diagonal = np.array([[1, 2, 3, 4], # Input shape: (2, 4) [5, 6, 7, 8]]) tf.matrix_diag(diagonal) ==> [[[1, 0, 0, 0], # Output shape: (2, 4, 4) [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]]]
# A superdiagonal (per batch). diagonal = np.array([[1, 2, 3], # Input shape: (2, 3) [4, 5, 6]]) tf.matrix_diag(diagonal, k = 1) ==> [[[0, 1, 0, 0], # Output shape: (2, 4, 4) [0, 0, 2, 0], [0, 0, 0, 3], [0, 0, 0, 0]], [[0, 4, 0, 0], [0, 0, 5, 0], [0, 0, 0, 6], [0, 0, 0, 0]]]
# A band of diagonals. diagonals = np.array([[[1, 2, 3], # Input shape: (2, 2, 3) [4, 5, 0]], [[6, 7, 9], [9, 1, 0]]]) tf.matrix_diag(diagonals, k = (-1, 0)) ==> [[[1, 0, 0], # Output shape: (2, 3, 3) [4, 2, 0], [0, 5, 3]], [[6, 0, 0], [9, 7, 0], [0, 1, 9]]]
# Rectangular matrix. diagonal = np.array([1, 2]) # Input shape: (2) tf.matrix_diag(diagonal, k = -1, num_rows = 3, num_cols = 4) ==> [[0, 0, 0, 0], # Output shape: (3, 4) [1, 0, 0, 0], [0, 2, 0, 0]]
# Rectangular matrix with inferred num_cols and padding = 9. tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding = 9) ==> [[9, 9], # Output shape: (3, 2) [1, 9], [9, 2]]
Arguments:
- scope: un objet Scope
- diagonale: Rang
r
, oùr >= 1
- k: décalage (s) diagonal (s). Une valeur positive signifie superdiagonale, 0 fait référence à la diagonale principale et une valeur négative signifie des sous-diagonales.
k
peut être un seul entier (pour une seule diagonale) ou une paire d'entiers spécifiant les extrémités basse et haute d'une bande matricielle.k[0]
ne doit pas être supérieur àk[1]
. - num_rows: le nombre de lignes de la matrice de sortie. S'il n'est pas fourni, l'op suppose que la matrice de sortie est une matrice carrée et déduit la taille de la matrice à partir de k et de la dimension la plus interne de la
diagonal
. - num_cols: le nombre de colonnes de la matrice de sortie. S'il n'est pas fourni, l'op suppose que la matrice de sortie est une matrice carrée et déduit la taille de la matrice à partir de k et de la dimension la plus interne de la
diagonal
. - padding_value: Le nombre avec lequel remplir la zone en dehors de la bande diagonale spécifiée. La valeur par défaut est 0.
Retour:
-
Output
: a le rangr+1
quandk
est un entier ouk[0] == k[1]
, rangr
sinon.
Constructeurs et destructeurs | |
---|---|
MatrixDiagV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input diagonal, :: tensorflow::Input k, :: tensorflow::Input num_rows, :: tensorflow::Input num_cols, :: tensorflow::Input padding_value) |
Attributs publics | |
---|---|
operation | |
output |
Fonctions publiques | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Attributs publics
opération
Operation operation
production
::tensorflow::Output output
Fonctions publiques
MatrixDiagV2
MatrixDiagV2( const ::tensorflow::Scope & scope, ::tensorflow::Input diagonal, ::tensorflow::Input k, ::tensorflow::Input num_rows, ::tensorflow::Input num_cols, ::tensorflow::Input padding_value )
nœud
::tensorflow::Node * node() const
operator :: tensorflow :: Input
operator::tensorflow::Input() const
operator :: tensorflow :: Output
operator::tensorflow::Output() const