Computer >> Máy Tính >  >> Lập trình >> Python

Tính toán sản phẩm dấu chấm tensor cho các mảng có các kích thước khác nhau bằng Python

Cho hai tenxơ, a và b và một đối tượng giống mảng chứa hai đối tượng giống mảng (a_axes, b_axes), tính tổng các tích của các phần tử (thành phần) của a và b trên các trục được chỉ định bởi a_axes và b_axes. Đối số thứ ba có thể là một vô hướng giống số nguyên không âm, N; Nếu đúng như vậy, thì N kích thước cuối cùng của a và N thứ nguyên đầu tiên của b sẽ được cộng lại.

Để tính tích số dấu chấm tensor cho các mảng có kích thước khác nhau, hãy sử dụng phương thức numpy.tensordot (). Các tham số a, b là Tensors để "chấm". Tham số trục, integer_like Nếu là int N, tính toán N trục cuối cùng của a và N trục đầu tiên của b theo thứ tự. Kích thước của các trục tương ứng phải phù hợp.

Các bước

Đầu tiên, hãy nhập các thư viện được yêu cầu -

import numpy as np

Tạo hai mảng rỗng với các kích thước khác nhau bằng phương thức array () -

arr1 = np.array(range(1, 9))
arr1.shape = (2, 2, 2)
arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
arr2.shape = (2, 2)

Hiển thị các mảng -

print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

Kiểm tra Kích thước của cả hai mảng -

print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

Kiểm tra Hình dạng của cả hai mảng -

print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

Để tính toán sản phẩm dấu chấm tensor cho các mảng có các kích thước khác nhau, hãy sử dụng phương thức numpy.tensordot () trong Python -

print("\nTensor dot product...\n", np.tensordot(arr1, arr2))

Ví dụ

import numpy as np

# Creating two numpy arrays with different dimensions using the array() method
arr1 = np.array(range(1, 9))
arr1.shape = (2, 2, 2)
arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
arr2.shape = (2, 2)

# Display the arrays
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

# Check the Dimensions of both the arrays
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

# Check the Shape of both the arrays
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

# To compute the tensor dot product for arrays with different dimensions, use the numpy.tensordot() method in Python
print("\nTensor dot product...\n", np.tensordot(arr1, arr2))

Đầu ra

Array1...
[[[1 2]
[3 4]]

[[5 6]
[7 8]]]

Array2...
[['p' 'q']
['r' 's']]

Dimensions of Array1...
3

Dimensions of Array2...
2

Shape of Array1...
(2, 2, 2)

Shape of Array2...
(2, 2)

Tensor dot product...
['pqqrrrssss' 'pppppqqqqqqrrrrrrrssssssss']