Renvoie la partie diagonale groupée d'un tenseur groupé.
Renvoie un tenseur avec les `k[0]`-ième à `k[1]`-ième diagonales de l'`entrée` par lots.
Supposons que « input » ait des dimensions « r » « [I, J, ..., L, M, N] ». Soit `max_diag_len` la longueur maximale parmi toutes les diagonales à extraire, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0], 0))` Soit `num_diags` soit le nombre de diagonales à extraire, `num_diags = k[1] - k[0] + 1`.
Si `num_diags == 1`, le tenseur de sortie est de rang `r - 1` de forme `[I, J, ..., L, max_diag_len]` et valeurs :
diagonal[i, j, ..., l, n]
= input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
padding_value ; otherwise.
Sinon, le tenseur de sortie a le rang `r` avec les dimensions `[I, J, ..., L, num_diags, max_diag_len]` avec les valeurs :
diagonal[i, j, ..., l, m, n]
= input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
padding_value ; otherwise.
L'entrée doit être au moins une matrice.
Par exemple:
input = np.array([[[1, 2, 3, 4], # Input shape: (2, 3, 4)
[5, 6, 7, 8],
[9, 8, 7, 6]],
[[5, 4, 3, 2],
[1, 2, 3, 4],
[5, 6, 7, 8]]])
# A main diagonal from each batch.
tf.matrix_diag_part(input) ==> [[1, 6, 7], # Output shape: (2, 3)
[5, 2, 7]]
# A superdiagonal from each batch.
tf.matrix_diag_part(input, k = 1)
==> [[2, 7, 6], # Output shape: (2, 3)
[4, 3, 8]]
# A tridiagonal band from each batch.
tf.matrix_diag_part(input, k = (-1, 1))
==> [[[2, 7, 6], # Output shape: (2, 3, 3)
[1, 6, 7],
[5, 8, 0]],
[[4, 3, 8],
[5, 2, 7],
[1, 6, 0]]]
# Padding value = 9
tf.matrix_diag_part(input, k = (1, 3), padding_value = 9)
==> [[[4, 9, 9], # Output shape: (2, 3, 3)
[3, 8, 9],
[2, 7, 6]],
[[2, 9, 9],
[3, 4, 9],
[4, 3, 8]]]
Constantes
Chaîne | OP_NAME | Le nom de cette opération, tel que connu par le moteur principal TensorFlow |
Méthodes publiques
Sortie <T> | comme Sortie () Renvoie le handle symbolique du tenseur. |
statique <T étend TType > MatrixDiagPart <T> | |
Sortie <T> | diagonale () La ou les diagonales extraites. |
Méthodes héritées
Constantes
chaîne finale statique publique OP_NAME
Le nom de cette opération, tel que connu par le moteur principal TensorFlow
Méthodes publiques
sortie publique <T> asOutput ()
Renvoie le handle symbolique du tenseur.
Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.
public static MatrixDiagPart <T> créer (portée de portée , entrée opérande <T>, opérande < TInt32 > k, opérande <T> paddingValue)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération MatrixDiagPart.
Paramètres
portée | portée actuelle |
---|---|
saisir | Classez le tenseur `r` où `r >= 2`. |
k | Décalage(s) diagonal(s). Une valeur positive signifie une 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 inférieure et supérieure d'une bande matricielle. `k[0]` ne doit pas être supérieur à `k[1]`. |
valeur de remplissage | La valeur avec laquelle remplir la zone en dehors de la bande diagonale spécifiée. La valeur par défaut est 0. |
Retours
- une nouvelle instance de MatrixDiagPart