ส่งกลับเทนเซอร์แนวทแยงแบบแบทช์พร้อมค่าแนวทแยงแบบแบทช์ที่กำหนด
ส่งกลับเทนเซอร์ที่มีเนื้อหาอยู่ใน "แนวทแยง" เป็นเส้นทแยงมุม "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
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
padding_value ; otherwise
ตัวอย่างเช่น:
# 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
วิธีการสาธารณะ
เอาท์พุท สาธารณะ <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` มิฉะนั้น