แก้ระบบสมการเชิงเส้นด้วยเมทริกซ์สามเหลี่ยมบนหรือล่างด้วยการแทนที่กลับ
`เมทริกซ์` คือเมตริกซ์ของรูปร่าง `[..., M, M]` ซึ่ง 2 มิติด้านในสุดจะประกอบกันเป็นเมทริกซ์จัตุรัส หาก "ต่ำกว่า" เป็น "จริง" ดังนั้นส่วนสามเหลี่ยมด้านบนอย่างเคร่งครัดของเมทริกซ์ด้านในสุดแต่ละเมทริกซ์จะถือว่าเป็นศูนย์และไม่มีการเข้าถึง หาก 'lower' เป็นเท็จ ส่วนสามเหลี่ยมด้านล่างสุดของเมทริกซ์ด้านในสุดแต่ละเมทริกซ์จะถือว่าเป็นศูนย์และจะไม่มีการเข้าถึง `rhs` คือเทนเซอร์ของรูปร่าง `[..., M, N]`
ผลลัพธ์ที่ได้คือเทนเซอร์ของรูปร่าง `[..., M, N]` ถ้า `adjoint` เป็น `True` แสดงว่าเมทริกซ์ชั้นในสุดใน `output` เป็นไปตามสมการเมทริกซ์ `matrix[..., :, :] * output[..., :, :] = rhs[..., :, :]`. หาก `adjoint` เป็น `False` ดังนั้นเมทริกซ์ที่อยู่ชั้นในสุดใน `output` จะเป็นไปตามสมการของเมทริกซ์ `adjoint(matrix[..., i, k]) * output[..., k, j] = rhs[ ..., ฉัน, เจ]`.
โปรดทราบว่ารูปร่างแบทช์สำหรับอินพุตจำเป็นต้องออกอากาศเท่านั้น
ตัวอย่าง:
a = tf.constant([[3,  0,  0,  0],
                  [2,  1,  0,  0],
                  [1,  0,  1,  0],
                  [1,  1,  1,  1]], dtype=tf.float32)
 
 b = tf.constant([[4],
                  [2],
                  [4],
                  [2]], dtype=tf.float32)
 
 x = tf.linalg.triangular_solve(a, b, lower=True)
 x
 # <tf.Tensor: shape=(4, 1), dtype=float32, numpy=
 # array([[ 1.3333334 ],
 #        [-0.66666675],
 #        [ 2.6666665 ],
 #        [-1.3333331 ]], dtype=float32)>
 
 # in python3 one can use `a@x`
 tf.matmul(a, x)
 # <tf.Tensor: shape=(4, 1), dtype=float32, numpy=
 # array([[4.       ],
 #        [2.       ],
 #        [4.       ],
 #        [1.9999999]], dtype=float32)>
 คลาสที่ซ้อนกัน
| ระดับ | TriangleSolve.Options | แอ็ตทริบิวต์ทางเลือกสำหรับ TriangularSolve | |
ค่าคงที่
| สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow | 
วิธีการสาธารณะ
| TriangleSolve.Options แบบคงที่ |  ที่อยู่ติดกัน (ที่อยู่ติดกับบูลีน) | 
| เอาท์พุต <T> |  เป็นเอาท์พุต ()  ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ | 
| คงที่ <T ขยาย TType > TriangleSolve <T> |  สร้าง (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> เมทริกซ์, ตัวดำเนินการ <T> rhs, ตัวเลือก... ตัวเลือก)  วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ TriangleSolve ใหม่ | 
| TriangleSolve.Options แบบคงที่ |  ต่ำกว่า (บูลีนต่ำกว่า) | 
| เอาท์พุต <T> |  เอาท์พุท ()  รูปร่างคือ `[..., M, K]`  | 
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
สาธารณะคงที่ TriangleSolve.Options adjoint (บูลีน adjoint)
พารามิเตอร์
| ติดกัน | บูลีนที่ระบุว่าจะแก้โจทย์ด้วย "เมทริกซ์" หรือส่วนที่อยู่ติดกัน (แบบบล็อก) | 
|---|
เอาท์พุท สาธารณะ <T> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง TriangleSolve <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> เมทริกซ์, ตัวดำเนินการ <T> rhs, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ TriangleSolve ใหม่
พารามิเตอร์
| ขอบเขต | ขอบเขตปัจจุบัน | 
|---|---|
| เมทริกซ์ | รูปร่างคือ `[..., M, M]` | 
| Rhs | รูปร่างคือ `[..., M, K]` | 
| ตัวเลือก | มีค่าแอตทริบิวต์ทางเลือก | 
การส่งคืน
- ตัวอย่างใหม่ของ TriangleSolve
TriangleSolve.Options สาธารณะคง ที่ต่ำกว่า (บูลีนต่ำกว่า)
พารามิเตอร์
| ต่ำกว่า | บูลีนที่ระบุว่าเมทริกซ์ด้านในสุดใน "เมทริกซ์" เป็นรูปสามเหลี่ยมด้านล่างหรือด้านบน | 
|---|