MatrixDiagPartV3

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

Возвращает пакетную диагональную часть пакетного тензора.

Возвращает тензор с диагоналями от `k[0]` до `k[1]` пакетного `input`.

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

Если `num_diags == 1`, выходной тензор имеет ранг `r - 1` с формой `[I, J, ..., L, max_diag_len]` и значениями:

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.
 
где `y = max(-k [1], 0)`, `x = max(k[1], 0)`.

В противном случае выходной тензор имеет ранг `r` с размерностями `[I, J, ..., L, num_diags, max_diag_len]` со значениями:

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.
 
, где `d = k[1] - m`, `y = max(-d, 0) - смещение` и `x = max(d, 0) - смещение`.

`offset` равен нулю, за исключением случаев, когда диагональ выравнивается вправо.

offset = max_diag_len - diag_len(d) ; if (`align` in {RIGHT_LEFT, RIGHT_RIGHT
                                            and `d >= 0`) or
                                          (`align` in {LEFT_RIGHT, RIGHT_RIGHT}
                                            and `d <= 0`)
          0                          ; otherwise
 }
, где `diag_len(d) = min(cols - max(d, 0), rows + min(d, 0))`.

Входные данные должны быть как минимум матрицей.

Например:

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 band from each batch.
 tf.matrix_diag_part(input, k = (-1, 2))
   ==> [[[0, 3, 8],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [5, 8, 0]],
        [[0, 3, 4],
         [4, 3, 8],
         [5, 2, 7],
         [1, 6, 0]]]
 
 # LEFT_RIGHT alignment.
 tf.matrix_diag_part(input, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[3, 8, 0],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [0, 5, 8]],
        [[3, 4, 0],
         [4, 3, 8],
         [5, 2, 7],
         [0, 1, 6]]]
 
 # max_diag_len can be shorter than the main diagonal.
 tf.matrix_diag_part(input, k = (-2, -1))
   ==> [[[5, 8],
         [9, 0]],
        [[1, 6],
         [5, 0]]]
 
 # padding_value = 9
 tf.matrix_diag_part(input, k = (1, 3), padding_value = 9)
   ==> [[[9, 9, 4],  # Output shape: (2, 3, 3)
         [9, 3, 8],
         [2, 7, 6]],
        [[9, 9, 2],
         [9, 3, 4],
         [4, 3, 8]]]
 
 

Вложенные классы

сорт MatrixDiagPartV3.Options Дополнительные атрибуты для MatrixDiagPartV3

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

статический MatrixDiagPartV3.Options
выровнять (выровнять строку)
Выход <Т>
какВывод ()
Возвращает символический дескриптор тензора.
статический <T> MatrixDiagPartV3 <T>
create ( Область действия , ввод операнда <T>, операнд <целое число> k, операнд <T> значение_дополнения, параметры... параметры)
Фабричный метод для создания класса, обертывающего новую операцию MatrixDiagPartV3.
Выход <Т>
диагональ ()
Извлеченная диагональ(и).

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

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

public static MatrixDiagPartV3.Options align (Выравнивание строки)

Параметры
выровнять Некоторые диагонали короче, чем max_diag_len, и их необходимо дополнить. `align` — это строка, определяющая, как должны быть выровнены супердиагонали и субдиагонали соответственно. Существует четыре возможных варианта выравнивания: «RIGHT_LEFT» (по умолчанию), «LEFT_RIGHT», «LEFT_LEFT» и «RIGHT_RIGHT». «RIGHT_LEFT» выравнивает супердиагонали вправо (дополняет строку слева) и субдиагонали влево (дополняет строку справа). Это формат упаковки, который использует LAPACK. cuSPARSE использует «LEFT_RIGHT», что является противоположным выравниванием.

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

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

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

public static MatrixDiagPartV3 <T> create (область области действия , ввод операнда <T>, операнд <Integer> k, операнд <T>_paddingValue, параметры... параметры)

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

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

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

Извлеченная диагональ(и).