Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Giải phương trình tensor trong Python

Để giải phương trình tensor a @ x = b (tensor dot), dùng numpy.linalg.tensorsolve(). Giả định tất cả chỉ mục của x được tổng hợp trong tích, cùng với các chỉ mục phải nhất của a. Hình dạng a phải là b.shape + Q với prod(Q) == prod(b.shape).

Tham số

  • a (array_like): Tensor hệ số, shape b.shape + Q.
  • b (array_like): Tensor vế phải.
  • axes (tuple, tùy chọn): Các trục reorder trước khi nghịch đảo.

Các bước thực hiện

Nhập NumPy, tạo tensor hệ số và vế phải:

import numpy as np

# Tensor hệ số: eye(24) reshape (6, 4, 2, 3, 4)
arr1 = np.eye(2*3*4)
arr1.shape = (2*3, 4, 2, 3, 4)

# Tensor vế phải ngẫu nhiên (6, 4)
arr2 = np.random.randn(2*3, 4)

print("Tensor hệ số...\n", arr1)
print("\nTensor vế phải...\n", arr2)
print("\nSố chiều tensor hệ số...\n", arr1.ndim)
print("\nSố chiều tensor vế phải...\n", arr2.ndim)
print("\nHình dạng tensor hệ số...\n", arr1.shape)
print("\nHình dạng tensor vế phải...\n", arr2.shape)

# Giải phương trình tensor
print("\nKết quả...\n", np.linalg.tensorsolve(arr1, arr2))

Ví dụ hoàn chỉnh

import numpy as np

arr1 = np.eye(2*3*4)
arr1.shape = (2*3, 4, 2, 3, 4)
arr2 = np.random.randn(2*3, 4)
print("Tensor hệ số...\n", arr1)
print("\nTensor vế phải...\n", arr2)
print("\nSố chiều tensor hệ số...\n", arr1.ndim)
print("\nSố chiều tensor vế phải...\n", arr2.ndim)
print("\nHình dạng tensor hệ số...\n", arr1.shape)
print("\nHình dạng tensor vế phải...\n", arr2.shape)
print("\nKết quả...\n", np.linalg.tensorsolve(arr1, arr2))

Kết quả đầu ra

Kết quả shape (2, 3, 4) - nghiệm tensor. Xem output gốc cho giá trị cụ thể do arr2 ngẫu nhiên.