Xem bài phát biểu, phiên sản phẩm, hội thảo và hơn thế nữa từ Google I / O Xem danh sách phát

dòng chảy :: hoạt động :: MatrixDiagPartV2

#include <array_ops.h>

Trả về phần đường chéo theo lô của một tenxơ theo lô.

Tóm lược

Trả về một tensor với đường chéo k[0] -th đến k[1] -th của input lô.

Giả sử inputr nguyên [I, J, ..., L, M, N] . Đặt max_diag_len là độ dài lớn nhất trong số tất cả các đường chéo được trích xuất, max_diag_len = min(M + min(k[1], 0), N + min(-k[0], 0)) Gọi num_diags là số đường chéo để giải nén, num_diags = k[1] - k[0] + 1 .

Nếu num_diags == 1 , tensor đầu ra có thứ hạng r - 1 với hình dạng [I, J, ..., L, max_diag_len] và các giá trị:

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.
trong đó y = max(-k[1], 0) , x = max(k[1], 0) .

Nếu không, tensor đầu ra có xếp hạng r với các kích thước [I, J, ..., L, num_diags, max_diag_len] với các giá trị:

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.
trong đó d = k[1] - m , y = max(-d, 0)x = max(d, 0) .

Đầu vào ít nhất phải là ma trận.

Ví dụ:

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 tridiagonal band from each batch.
tf.matrix_diag_part(input, k = (-1, 1))
  ==> [[[2, 7, 6],  # Output shape: (2, 3, 3)
        [1, 6, 7],
        [5, 8, 0]],
       [[4, 3, 8],
        [5, 2, 7],
        [1, 6, 0]]]

# Padding value = 9
tf.matrix_diag_part(input, k = (1, 3), padding_value = 9)
  ==> [[[4, 9, 9],  # Output shape: (2, 3, 3)
        [3, 8, 9],
        [2, 7, 6]],
       [[2, 9, 9],
        [3, 4, 9],
        [4, 3, 8]]]

Tranh luận:

  • phạm vi: Một đối tượng Phạm vi
  • đầu vào: Xếp hạng r tensor trong đó r >= 2 .
  • k: (Các) độ lệch đường chéo. Giá trị dương có nghĩa là siêu cạnh, 0 là đường chéo chính và giá trị âm có nghĩa là hình con. k có thể là một số nguyên duy nhất (đối với một đường chéo duy nhất) hoặc một cặp số nguyên xác định các đầu cuối thấp và cao của một dải ma trận. k[0] không được lớn hơn k[1] .
  • padding_value: Giá trị để lấp đầy vùng bên ngoài dải chéo được chỉ định. Mặc định là 0.

Lợi nhuận:

  • Output : (Các) đường chéo được trích xuất.

Người xây dựng và Người phá hủy

MatrixDiagPartV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input k, :: tensorflow::Input padding_value)

Thuộc tính công khai

diagonal
operation

Chức năng công cộng

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Thuộc tính công khai

đường chéo

::tensorflow::Output diagonal

hoạt động

Operation operation

Chức năng công cộng

MatrixDiagPartV2

 MatrixDiagPartV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input k,
  ::tensorflow::Input padding_value
)

nút

::tensorflow::Node * node() const 

toán tử :: tensorflow :: Đầu vào

 operator::tensorflow::Input() const 

toán tử :: tensorflow :: Đầu ra

 operator::tensorflow::Output() const