MatrixSetDiagV2

public final class MatrixSetDiagV2

Restituisce un tensore di matrice in batch con nuovi valori diagonali in batch.

Dati "input" e "diagonale", questa operazione restituisce un tensore con la stessa forma e valori di "input", eccetto per le diagonali specificate delle matrici più interne. Questi verranno sovrascritti dai valori in "diagonale".

"input" ha dimensioni "r + 1" "[I, J, ..., L, M, N]". Quando "k" è scalare o "k [0] == k [1]", "diagonale" ha dimensioni "r" "[I, J, ..., L, max_diag_len]". Altrimenti, ha dimensioni "r + 1" "[I, J, ..., L, num_diags, max_diag_len]". `num_diags` è il numero di diagonali,` num_diags = k [1] - k [0] + 1`. "max_diag_len" è la diagonale più lunga nell'intervallo "[k [0], k [1]]", `max_diag_len = min (M + min (k [1], 0), N + min (-k [0] , 0)) "

L'output è un tensore di rango "k + 1" con dimensioni "[I, J, ..., L, M, N]". Se `k` è scalare o` k [0] == k [1] `:

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(k[1], 0)] ; if n - m == k[1]
     input[i, j, ..., l, m, n]              ; otherwise
 
Altrimenti,
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     input[i, j, ..., l, m, n]                         ; otherwise
 
dove` d = n - m`, `diag_index = k [1] - d` e` index_in_diag = n - max (d, 0) ".

Ad esempio:

# The main diagonal.
 input = np.array([[[7, 7, 7, 7],              # Input shape: (2, 3, 4)
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]],
                   [[7, 7, 7, 7],
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]]])
 diagonal = np.array([[1, 2, 3],               # Diagonal shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_set_diag(diagonal) ==> [[[1, 7, 7, 7],  # Output shape: (2, 3, 4)
                                    [7, 2, 7, 7],
                                    [7, 7, 3, 7]],
                                   [[4, 7, 7, 7],
                                    [7, 5, 7, 7],
                                    [7, 7, 6, 7]]]
 
 # A superdiagonal (per batch).
 tf.matrix_set_diag(diagonal, k = 1)
   ==> [[[7, 1, 7, 7],  # Output shape: (2, 3, 4)
         [7, 7, 2, 7],
         [7, 7, 7, 3]],
        [[7, 4, 7, 7],
         [7, 7, 5, 7],
         [7, 7, 7, 6]]]
 
 # A band of diagonals.
 diagonals = np.array([[[1, 2, 3],  # Diagonal shape: (2, 2, 3)
                        [4, 5, 0]],
                       [[6, 1, 2],
                        [3, 4, 0]]])
 tf.matrix_set_diag(diagonals, k = (-1, 0))
   ==> [[[1, 7, 7, 7],  # Output shape: (2, 3, 4)
         [4, 2, 7, 7],
         [0, 5, 3, 7]],
        [[6, 7, 7, 7],
         [3, 1, 7, 7],
         [7, 4, 2, 7]]]
 
 

Metodi pubblici

Uscita <T>
asOutput ()
Restituisce la maniglia simbolica di un tensore.
statico <T> MatrixSetDiagV2 <T>
create ( ambito ambito, operando <T> input, operando <T> diagonale, operando <Integer> k)
Metodo Factory per creare una classe che avvolge una nuova operazione MatrixSetDiagV2.
Uscita <T>
output ()
Rango "r + 1", con "output.shape = input.shape".

Metodi ereditati

Metodi pubblici

output pubblico <T> asOutput ()

Restituisce la maniglia simbolica di un tensore.

Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.

public static MatrixSetDiagV2 <T> create ( ambito ambito, operando <T> input, operando <T> diagonale, operando <Integer> k)

Metodo Factory per creare una classe che avvolge una nuova operazione MatrixSetDiagV2.

Parametri
scopo ambito attuale
ingresso Rango "r + 1", dove "r> = 1".
diagonale Rango "r" quando "k" è un numero intero o "k [0] == k [1]". Altrimenti, ha rango "r + 1". "k> = 1".
K Offset diagonale. Un valore positivo significa superdiagonale, 0 si riferisce alla diagonale principale e un valore negativo significa sottodiagonale. "k" può essere un singolo numero intero (per una singola diagonale) o una coppia di numeri interi che specificano le estremità inferiore e superiore di una banda di matrice. "k [0]" non deve essere maggiore di "k [1]".
ritorna
  • una nuova istanza di MatrixSetDiagV2

output pubblico <T> output ()

Rango "r + 1", con "output.shape = input.shape".