แก้ระบบสมการเชิงเส้นด้วยเมทริกซ์สามเหลี่ยมบนหรือล่างด้วยการแทนที่กลับ
`เมทริกซ์` คือเมตริกซ์ของรูปร่าง `[..., 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 สาธารณะคง ที่ต่ำกว่า (บูลีนต่ำกว่า)
พารามิเตอร์
ต่ำกว่า | บูลีนที่ระบุว่าเมทริกซ์ด้านในสุดใน "เมทริกซ์" เป็นรูปสามเหลี่ยมด้านล่างหรือด้านบน |
---|