MatrixSetDiagV2

clase final pública MatrixSetDiagV2

Devuelve un tensor matricial por lotes con nuevos valores diagonales por lotes.

Dadas "entrada" y "diagonal", esta operación devuelve un tensor con la misma forma y valores que "entrada", excepto por las diagonales especificadas de las matrices más internas. Estos serán sobrescritos por los valores en "diagonal".

`entrada` tiene dimensiones `r+1` `[I, J, ..., L, M, N]`. Cuando `k` es escalar o `k[0] == k[1]`, `diagonal` tiene dimensiones `r` `[I, J, ..., L, max_diag_len]`. De lo contrario, tiene dimensiones `r+1` `[I, J, ..., L, num_diags, max_diag_len]`. `num_diags` es el número de diagonales, `num_diags = k[1] - k[0] + 1`. `max_diag_len` es la diagonal más larga en el rango `[k[0], k[1]]`, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0] , 0))`

La salida es un tensor de rango `k+1` con dimensiones `[I, J, ..., L, M, N]`. Si `k` es escalar 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
 
De lo contrario,
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
 
donde `d = n - m`, `diag_index = k[1] - d` y ` index_in_diag = n - máx(d, 0)`.

Por ejemplo:

# 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]]]
 
 

Métodos públicos

Salida <T>
como salida ()
Devuelve el identificador simbólico de un tensor.
estático <T> MatrixSetDiagV2 <T>
crear (alcance alcance , entrada operando <T>, operando <T> diagonal, operando <entero> k)
Método de fábrica para crear una clase que envuelve una nueva operación MatrixSetDiagV2.
Salida <T>
producción ()
Clasifique `r+1`, con `output.shape = input.shape`.

Métodos heredados

Métodos públicos

Salida pública <T> como Salida ()

Devuelve el identificador simbólico de un tensor.

Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.

creación pública estática MatrixSetDiagV2 <T> (alcance alcance , entrada operando <T>, operando <T> diagonal, operando <entero> k)

Método de fábrica para crear una clase que envuelve una nueva operación MatrixSetDiagV2.

Parámetros
alcance alcance actual
aporte Rango `r+1`, donde `r >= 1`.
diagonal Clasifica `r` cuando `k` es un número entero o `k[0] == k[1]`. De lo contrario, tiene rango "r+1". `k>= 1`.
k Desplazamientos diagonales. El valor positivo significa superdiagonal, 0 se refiere a la diagonal principal y el valor negativo significa subdiagonales. `k` puede ser un único número entero (para una única diagonal) o un par de números enteros que especifican los extremos inferior y superior de una banda de matriz. `k[0]` no debe ser mayor que `k[1]`.
Devoluciones
  • una nueva instancia de MatrixSetDiagV2

Salida pública <T> salida ()

Clasifique `r+1`, con `output.shape = input.shape`.