МатрицаСетДиагВ2

публичный финальный класс MatrixSetDiagV2

Возвращает пакетный матричный тензор с новыми пакетными значениями диагонали.

Учитывая `input` и `diagonal`, эта операция возвращает тензор той же формы и значений, что и `input`, за исключением указанных диагоналей самых внутренних матриц. Они будут перезаписаны значениями в «диагонали».

`input` имеет размерность r+1 `[I, J, ..., L, M, N]`. Когда `k` является скаляром или `k[0] == k[1]`, `диагональ` имеет размеры `r` `[I, J, ..., L, max_diag_len]`. В противном случае он имеет размеры r+1 `[I, J, ..., L, num_diags, max_diag_len]`. `num_diags` — это количество диагоналей, `num_diags = k[1] - k[0] + 1`. `max_diag_len` — самая длинная диагональ в диапазоне `[k[0], k[1]]`, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0] , 0))`

На выходе получается тензор ранга `k+1` с размерностями `[I, J, ..., L, M, N]`. Если `k` скаляр или `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
 
В противном случае,
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
 
, где `d = n - m`, `diag_index = k[1] - d` и ` index_in_diag = n - max(d, 0)`.

Например:

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

Публичные методы

Выход <Т>
какВывод ()
Возвращает символический дескриптор тензора.
статический <T> MatrixSetDiagV2 <T>
create ( Область действия , ввод операнда <T>, диагональ операнда <T>, операнд <целое число> k)
Фабричный метод для создания класса, обертывающего новую операцию MatrixSetDiagV2.
Выход <Т>
выход ()
Ранжируйте `r+1`, используя `output.shape = input.shape`.

Унаследованные методы

Публичные методы

публичный вывод <T> asOutput ()

Возвращает символический дескриптор тензора.

Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.

public static MatrixSetDiagV2 <T> create (область действия , ввод операнда <T>, диагональ операнда <T>, операнд <Целое число> k)

Фабричный метод для создания класса, обертывающего новую операцию MatrixSetDiagV2.

Параметры
объем текущий объем
вход Ранг `r+1`, где `r >= 1`.
диагональ Ранжируйте `r`, когда `k` является целым числом или `k[0] == k[1]`. В противном случае он имеет ранг `r+1`. `к >= 1`.
к Диагональное смещение(я). Положительное значение означает супердиагональ, 0 относится к главной диагонали, а отрицательное значение означает поддиагонали. `k` может быть одним целым числом (для одной диагонали) или парой целых чисел, определяющих нижний и верхний пределы полосы матрицы. `k[0]` не должен быть больше `k[1]`.
Возврат
  • новый экземпляр MatrixSetDiagV2

публичный вывод <T> вывод ()

Ранжируйте `r+1`, используя `output.shape = input.shape`.