MatrixSetDiagV2

classe finale pubblica 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 gli stessi valori di "input", ad eccezione delle 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]`, `diagonal` 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)`.

Per 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>
comeuscita ()
Restituisce la maniglia simbolica di un tensore.
<T> statico MatrixSetDiagV2 <T>
create ( ambito ambito , operando <T> input, operando <T> diagonale, operando <intero> k)
Metodo factory per creare una classe che racchiude una nuova operazione MatrixSetDiagV2.
Uscita <T>
produzione ()
Classifica "r+1", con "output.shape = input.shape".

Metodi ereditati

Metodi pubblici

Uscita pubblica <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 racchiude una nuova operazione MatrixSetDiagV2.

Parametri
ambito ambito attuale
ingresso Rango `r+1`, dove `r >= 1`.
diagonale Classifica `r` quando `k` è un numero intero o `k[0] == k[1]`. Altrimenti, ha rango "r+1". `k >= 1`.
k Offset diagonale(i). Il valore positivo significa superdiagonale, 0 si riferisce alla diagonale principale e il valore negativo significa subdiagonali. "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]".
Ritorni
  • una nuova istanza di MatrixSetDiagV2

Uscita pubblica <T> uscita ()

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