NumPy का numpy.linalg.tensorinv() फंक्शन N-डायमेंशनल ऐरे (टेंसर्स) का टेंसर इनवर्स निकालता है। यह सामान्य मैट्रिक्स इनवर्स का उच्च-आयामी सामान्यीकरण है।
सिंटैक्स और पैरामीटर्स
numpy.linalg.tensorinv(a, ind=2)
- a: इनपुट टेंसर (ऐरे)। इसका आकार 'वर्गाकार' होना चाहिए:
prod(a.shape[:ind]) == prod(a.shape[ind:])। - ind: इनवर्स सम में शामिल पहले इंडेक्स की संख्या। डिफ़ॉल्ट 2।
- वापसी: टेंसर का टेंसरडॉट इनवर्स, आकार
a.shape[ind:] + a.shape[:ind]।
कॉन्सेप्ट: टेंसर इनवर्स
सामान्य मैट्रिक्स के लिए A⁻¹ ऐसा होता है कि A @ A⁻¹ = I।
टेंसर के लिए, tensorinv(a) ऐसा होता है कि tensordot(tensorinv(a), a, ind) = identity tensor।
3D ऐरे उदाहरण
import numpy as np
from numpy.linalg import inv
# 24x24 आइडेंटिटी मैट्रिक्स बनाएं और इसे (24, 8, 3) आकार दें
arr = np.eye(4*6) # 24x24 आइडेंटिटी
arr.shape = (24, 8, 3) # 3D आकार दें
print("मूल ऐरे आकार:", arr.shape)
print("डायमेंशन्स:", arr.ndim)
print("डेटा टाइप:", arr.dtype)
# ind=1 के साथ टेंसर इनवर्स (पहला इंडेक्स सम में शामिल)
result = np.linalg.tensorinv(arr, ind=1)
print("\nटेंसर इनवर्स आकार:", result.shape)
print("परिणाम (पहले कुछ एलिमेंट्स):\n", result[0, :, :])
आउटपुट
मूल ऐरे आकार: (24, 8, 3)
डायमेंशन्स: 3
डेटा टाइप: float64
टेंसर इनवर्स आकार: (8, 3, 24)
परिणाम (पहले कुछ एलिमेंट्स):
[[1. 0. 0. ... 0. 0. 0.]
[0. 1. 0. ... 0. 0. 0.]
[0. 0. 1. ... 0. 0. 0.]]
आकार परिवर्तन की व्याख्या
- मूल आकार:
(24, 8, 3) ind=1: पहला आयाम (24) "पंक्ति" भाग, शेष (8, 3) "कॉलम" भाग- वर्गाकार शर्त:
24 == 8*3 = 24✓ - परिणाम आकार:
a.shape[1:] + a.shape[:1]=(8, 3) + (24,)=(8, 3, 24)
सत्यापन
# टेंसरडॉट से सत्यापित करें
identity_check = np.tensordot(result, arr, axes=1)
print("टेंसरडॉट परिणाम आकार:", identity_check.shape)
print("क्या यह आइडेंटिटी के करीब है?", np.allclose(identity_check, np.eye(24).reshape(8, 3, 8, 3)))
सामान्य मैट्रिक्स इनवर्स से तुलना
# 2D मैट्रिक्स के लिए tensorinv, ind=2 के साथ सामान्य इनवर्स के समान है
mat = np.array([[2, 1], [1, 2]])
print("सामान्य इनवर्स:\n", np.linalg.inv(mat))
print("टेंसर इनवर्स (ind=2):\n", np.linalg.tensorinv(mat, ind=2))
उपयोग के मामले
- मल्टी-डायमेंशनल सिग्नल प्रोसेसिंग।
- क्वांटम मैकेनिक्स में टेंसर नेटवर्क्स।
- मल्टीवेरिएट स्टैटिस्टिक्स।
- डीप लर्निंग में हायर-ऑर्डर ऑप्टिमाइजेशन।
महत्वपूर्ण शर्त
इनपुट टेंसर "वर्गाकार" होना चाहिए: पहले ind आयामों का गुणनफल शेष आयामों के गुणनफल के बराबर होना चाहिए। अन्यथा LinAlgError उठाया जाएगा।