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

Tính toán sản phẩm tensor dot 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 toán sản phẩm dấu chấm tensor, hãy sử dụng phương thức numpy.tensordot () trong Python. Các a, bparameters là Tensors để "chấm". Tham số trục, integer_like Nếu là int N, tính tổng trê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 3D phức tạp bằng cách sử dụng phương thức array () -

arr1 = np.arange(60.).reshape(3,4,5)
arr2 = np.arange(24.).reshape(4,3,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, hãy sử dụng phương thức numpy.tensordot () trong Python. Các tham số a, b là Tensors đến “dot” -

print("\nTensor dot product...\n", np.tensordot(arr1,arr2, axes=([1,0],[0,1])))

Ví dụ

import numpy as np

# Creating two numpy 3D arrays using the array() method
arr1 = np.arange(60.).reshape(3,4,5)
arr2 = np.arange(24.).reshape(4,3,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, use the numpy.tensordot() method in Python
# The a, b parameters are Tensors to “dot”.
print("\nTensor dot product...\n", np.tensordot(arr1,arr2, axes=([1,0],[0,1])))

Đầu ra

Array1...
[[[ 0. 1. 2. 3. 4.]
[ 5. 6. 7. 8. 9.]
[10. 11. 12. 13. 14.]
[15. 16. 17. 18. 19.]]

[[20. 21. 22. 23. 24.]
[25. 26. 27. 28. 29.]
[30. 31. 32. 33. 34.]
[35. 36. 37. 38. 39.]]

[[40. 41. 42. 43. 44.]
[45. 46. 47. 48. 49.]
[50. 51. 52. 53. 54.]
[55. 56. 57. 58. 59.]]]

Array2...
[[[ 0. 1.]
[ 2. 3.]
[ 4. 5.]]

[[ 6. 7.]
[ 8. 9.]
[10. 11.]]

[[12. 13.]
[14. 15.]
[16. 17.]]

[[18. 19.]
[20. 21.]
[22. 23.]]]

Dimensions of Array1...
3

Dimensions of Array2...
3

Shape of Array1...
(3, 4, 5)

Shape of Array2...
(4, 3, 2)

Tensor dot product...
[[4400. 4730.]
[4532. 4874.]
[4664. 5018.]
[4796. 5162.]
[4928. 5306.]]