MatrixSetDiag

lớp cuối cùng công khai MatrixSetDiag

Trả về một tensor ma trận theo đợt với các giá trị đường chéo theo đợt mới.

Cho `đầu vào` và `đường chéo`, thao tác này trả về một tenxơ có hình dạng và giá trị giống như `đầu vào`, ngoại trừ các đường chéo được chỉ định của ma trận trong cùng. Những giá trị này sẽ bị ghi đè bởi các giá trị trong `đường chéo`.

`input` có kích thước `r+1` `[I, J, ..., L, M, N]`. Khi `k` là vô hướng hoặc `k[0] == k[1]`, `đường chéo` có các kích thước `r` `[I, J, ..., L, max_diag_len]`. Mặt khác, nó có kích thước `r+1` `[I, J, ..., L, num_diags, max_diag_len]`. `num_diags` là số đường chéo, `num_diags = k[1] - k[0] + 1`. `max_diag_len` là đường chéo dài nhất trong phạm vi `[k[0], k[1]]`, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0] , 0))`

Đầu ra là một tensor hạng `k+1` với các kích thước `[I, J, ..., L, M, N]`. Nếu `k` là vô hướng hoặc `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
 
Nếu không thì,
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
 
trong đó `d = n - m`, `diag_index = k[1] - d`, và `index_in_diag = n - max(d, 0) + offset`.

`offset` bằng 0 ngoại trừ khi căn chỉnh của đường chéo ở bên phải.

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
 }
trong đó `diag_len(d) = min(cols - max(d, 0), row + min(d, 0))`.

Ví dụ:

# 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(input, 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(input, 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([[[0, 9, 1],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 1, 2],
                        [5, 6, 4],
                        [6, 1, 2],
                        [3, 4, 0]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2))
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[9, 1, 0],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[1, 2, 0],
                        [5, 6, 4],
                        [6, 1, 2],
                        [0, 3, 4]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 

Các lớp lồng nhau

lớp học MatrixSetDiag.Options Thuộc tính tùy chọn cho MatrixSetDiag

Hằng số

Sợi dây OP_NAME Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Phương pháp công khai

MatrixSetDiag.Options tĩnh
căn chỉnh (Căn chỉnh chuỗi)
Đầu ra <T>
asOutput ()
Trả về tay cầm tượng trưng của tensor.
tĩnh <T mở rộng TType > MatrixSetDiag <T>
tạo ( Phạm vi phạm vi, đầu vào Toán hạng <T>, Đường chéo Toán tử <T>, Toán hạng < TInt32 > k, Tùy chọn... tùy chọn)
Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác MatrixSetDiag mới.
Đầu ra <T>
đầu ra ()
Xếp hạng `r+1`, với `output.shape = input.shape`.

Phương pháp kế thừa

Hằng số

Chuỗi cuối cùng tĩnh công khai OP_NAME

Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Giá trị không đổi: "MatrixSetDiagV3"

Phương pháp công khai

public static MatrixSetDiag.Options căn chỉnh (Căn chỉnh chuỗi)

Thông số
căn chỉnh Một số đường chéo ngắn hơn `max_diag_len` và cần được đệm. `align` là một chuỗi chỉ định cách căn chỉnh các đường siêu chéo và đường chéo phụ tương ứng. Có bốn cách sắp xếp có thể có: "RIGHT_LEFT" (mặc định), "LEFT_RIGHT", "LEFT_LEFT" và "RIGHT_RIGHT". "RIGHT_LEFT" căn chỉnh các đường chéo siêu sang phải ( Đệm bên trái hàng) và các đường chéo phụ về bên trái ( Đệm bên phải hàng). Đây là định dạng đóng gói mà LAPACK sử dụng. cuSPARSE sử dụng "LEFT_RIGHT", đây là cách căn chỉnh ngược lại.

Đầu ra công khai <T> asOutput ()

Trả về tay cầm tượng trưng của tensor.

Đầu vào của các hoạt động TensorFlow là đầu ra của một hoạt động TensorFlow khác. Phương pháp này được sử dụng để thu được một thẻ điều khiển mang tính biểu tượng đại diện cho việc tính toán đầu vào.

public static MatrixSetDiag <T> tạo ( Phạm vi phạm vi, đầu vào Toán hạng <T>, Đường chéo Toán tử <T>, Toán hạng < TInt32 > k, Tùy chọn... tùy chọn)

Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác MatrixSetDiag mới.

Thông số
phạm vi phạm vi hiện tại
đầu vào Xếp hạng `r+1`, trong đó `r >= 1`.
đường chéo Xếp hạng `r` khi `k` là số nguyên hoặc `k[0] == k[1]`. Ngược lại, nó có thứ hạng `r+1`. `k >= 1`.
k (Các) khoảng lệch chéo. Giá trị dương có nghĩa là đường chéo lớn, 0 là đường chéo chính và giá trị âm có nghĩa là đường chéo phụ. `k` có thể là một số nguyên đơn (đối với một đường chéo) hoặc một cặp số nguyên chỉ định đầu dưới và đầu cao của dải ma trận. `k[0]` không được lớn hơn `k[1]`.
tùy chọn mang các giá trị thuộc tính tùy chọn
Trả lại
  • một phiên bản mới của MatrixSetDiag

Đầu ra công khai đầu ra <T> ()

Xếp hạng `r+1`, với `output.shape = input.shape`.