MatrixDiag

MatrixDiag คลาสสุดท้ายสาธารณะ

ส่งกลับเทนเซอร์แนวทแยงแบบแบทช์พร้อมค่าแนวทแยงแบบแบทช์ที่กำหนด

ส่งกลับเทนเซอร์ที่มีเนื้อหาอยู่ใน "แนวทแยง" เป็นเส้นทแยงมุม "k[0]`-th ถึง `k[1]`-th ของเมทริกซ์ โดยที่ส่วนที่เหลือทั้งหมดเสริมด้วย "padding" `num_rows` และ `num_cols` ระบุขนาดของเมทริกซ์ที่อยู่ด้านในสุดของเอาต์พุต หากไม่ได้ระบุทั้งสองอย่าง op จะถือว่าเมทริกซ์ด้านในสุดเป็นสี่เหลี่ยมจัตุรัส และอนุมานขนาดจาก `k` และมิติด้านในสุดเป็น 'diagonal' หากมีการระบุเพียงค่าเดียว op จะถือว่าค่าที่ไม่ได้ระบุมีค่าน้อยที่สุดที่เป็นไปได้ตามเกณฑ์อื่นๆ

ให้ `เส้นทแยงมุม` มี `ขนาด `r` `[I, J, ..., L, M, N]` เอาท์พุตเทนเซอร์มีอันดับ `r+1` โดยมีรูปร่าง `[I, J, ..., L, M, num_rows, num_cols]` เมื่อให้เส้นทแยงมุมเพียงเส้นเดียว (`k` เป็นจำนวนเต็มหรือ `k[0] == ค[1]`) มิฉะนั้น จะมีอันดับ `r` ที่มีรูปร่าง `[I, J, ..., L, num_rows, num_cols]`

มิติด้านในสุดที่สองของ "เส้นทแยงมุม" มีความหมายสองเท่า เมื่อ `k` เป็นสเกลาร์หรือ `k[0] == k[1]` `M` จะเป็นส่วนหนึ่งของขนาดแบตช์ [I, J, ..., M] และเทนเซอร์เอาท์พุตคือ:

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
     padding_value                             ; otherwise
 
มิฉะนั้น `M` จะถือว่าเป็นจำนวนเส้นทแยงมุมสำหรับเมทริกซ์ในชุดเดียวกัน (`M = k[1]-k[0]+1`) และเทนเซอร์เอาท์พุตจะเป็น:
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     padding_value                                     ; otherwise
 
โดยที่ `d = n - m`, `diag_index = k[1] - d` และ `index_in_diag = n - max(d, 0)`

ตัวอย่างเช่น:

# The main diagonal.
 diagonal = np.array([[1, 2, 3, 4],            # Input shape: (2, 4)
                      [5, 6, 7, 8]])
 tf.matrix_diag(diagonal) ==> [[[1, 0, 0, 0],  # Output shape: (2, 4, 4)
                                [0, 2, 0, 0],
                                [0, 0, 3, 0],
                                [0, 0, 0, 4]],
                               [[5, 0, 0, 0],
                                [0, 6, 0, 0],
                                [0, 0, 7, 0],
                                [0, 0, 0, 8]]]
 
 # A superdiagonal (per batch).
 diagonal = np.array([[1, 2, 3],  # Input shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_diag(diagonal, k = 1)
   ==> [[[0, 1, 0, 0],  # Output shape: (2, 4, 4)
         [0, 0, 2, 0],
         [0, 0, 0, 3],
         [0, 0, 0, 0]],
        [[0, 4, 0, 0],
         [0, 0, 5, 0],
         [0, 0, 0, 6],
         [0, 0, 0, 0]]]
 
 # A band of diagonals.
 diagonals = np.array([[[1, 2, 3],  # Input shape: (2, 2, 3)
                        [4, 5, 0]],
                       [[6, 7, 9],
                        [9, 1, 0]]])
 tf.matrix_diag(diagonals, k = (-1, 0))
   ==> [[[1, 0, 0],  # Output shape: (2, 3, 3)
         [4, 2, 0],
         [0, 5, 3]],
        [[6, 0, 0],
         [9, 7, 0],
         [0, 1, 9]]]
 
 # Rectangular matrix.
 diagonal = np.array([1, 2])  # Input shape: (2)
 tf.matrix_diag(diagonal, k = -1, num_rows = 3, num_cols = 4)
   ==> [[0, 0, 0, 0],  # Output shape: (3, 4)
        [1, 0, 0, 0],
        [0, 2, 0, 0]]
 
 # Rectangular matrix with inferred num_cols and padding_value = 9.
 tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding_value = 9)
   ==> [[9, 9],  # Output shape: (3, 2)
        [1, 9],
        [9, 2]]
 

ค่าคงที่

สตริง OP_NAME ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow

วิธีการสาธารณะ

เอาท์พุต <T>
เป็นเอาท์พุต ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
คงที่ <T ขยาย TType > MatrixDiag <T>
สร้าง (ขอบเขต ขอบเขต ตัว ดำเนินการ <T> เส้นทแยงมุม ตัวดำเนินการ < TInt32 > k, ตัวดำเนินการ < TInt32 > numRows ตัวดำเนินการ < TInt32 > numCols ตัว ดำเนินการ <T> paddingValue)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ MatrixDiag ใหม่
เอาท์พุต <T>
เอาท์พุท ()
มีอันดับ `r+1` เมื่อ `k` เป็นจำนวนเต็มหรือ `k[0] == k[1]` ให้จัดอันดับ `r` มิฉะนั้น

วิธีการสืบทอด

ค่าคงที่

สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME

ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow

ค่าคงที่: "MatrixDiagV2"

วิธีการสาธารณะ

เอาท์พุท สาธารณะ <T> asOutput ()

ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์

อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต

สร้าง MatrixDiag <T> สาธารณะแบบคงที่ ( ขอบเขต ขอบเขต ตัว ดำเนินการ <T> เส้นทแยงมุม ตัวดำเนินการ < TInt32 > k, ตัวดำเนินการ < TInt32 > numRows ตัวดำเนินการ < TInt32 > numCols ตัว ดำเนินการ <T> paddingValue)

วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ MatrixDiag ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
เส้นทแยงมุม อันดับ `r` โดยที่ `r >= 1`
เค ออฟเซ็ตแนวทแยง ค่าบวกหมายถึงเส้นทแยงมุมเหนือ, 0 หมายถึงเส้นทแยงมุมหลัก และค่าลบหมายถึงเส้นทแยงมุมย่อย `k` อาจเป็นจำนวนเต็มเดี่ยว (สำหรับเส้นทแยงมุมเดียว) หรือจำนวนเต็มคู่ที่ระบุจุดต่ำสุดและสูงของแถบเมทริกซ์ `k[0]` ต้องไม่ใหญ่กว่า `k[1]`
numRows จำนวนแถวของเมทริกซ์เอาต์พุต หากไม่ได้ระบุไว้ op จะถือว่าเมทริกซ์เอาต์พุตเป็นเมทริกซ์จัตุรัสและอนุมานขนาดเมทริกซ์จาก k และมิติด้านในสุดของ "เส้นทแยงมุม"
numCols จำนวนคอลัมน์ของเมทริกซ์เอาต์พุต หากไม่ได้ระบุไว้ op จะถือว่าเมทริกซ์เอาต์พุตเป็นเมทริกซ์จัตุรัสและอนุมานขนาดเมทริกซ์จาก k และมิติด้านในสุดของ "เส้นทแยงมุม"
ค่าช่องว่างภายใน ตัวเลขที่ใช้เติมพื้นที่นอกแถบแนวทแยงที่ระบุ ค่าเริ่มต้นคือ 0
การส่งคืน
  • ตัวอย่างใหม่ของ MatrixDiag

เอาท์พุท สาธารณะ <T> เอาท์พุท ()

มีอันดับ `r+1` เมื่อ `k` เป็นจำนวนเต็มหรือ `k[0] == k[1]` ให้จัดอันดับ `r` มิฉะนั้น