ภาพรวม
ใช้ numpy.tensordot() เพื่อคำนวณ tensor dot product ของอาร์เรย์ 3 มิติ สองชุด โดยระบุ axes ที่จะหดตัว
พารามิเตอร์ axes
- ระบุเป็น tuple ของสองลิสต์: ([แกนของ a], [แกนของ b])
- ตัวอย่าง: axes=([1,0], [0,1]) หมายถึงหดตัวแกน 1,0 ของ a กับแกน 0,1 ของ b
ขั้นตอนการทำงาน
- นำเข้าไลบรารี
import numpy as np - สร้างอาร์เรย์ 3 มิติ สองชุด
arr1 = np.arange(60.).reshape(3, 4, 5) arr2 = np.arange(24.).reshape(4, 3, 2) - ตรวจสอบคุณสมบัติ
print("อาร์เรย์ 1...\n", arr1) print("\nอาร์เรย์ 2...\n", arr2) print("\nมิติอาร์เรย์ 1...\n", arr1.ndim) print("\nมิติอาร์เรย์ 2...\n", arr2.ndim) print("\nรูปร่างอาร์เรย์ 1...\n", arr1.shape) print("\nรูปร่างอาร์เรย์ 2...\n", arr2.shape) - คำนวณ tensor dot product
print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes=([1,0], [0,1])))
ตัวอย่างโค้ดสมบูรณ์
import numpy as np
arr1 = np.arange(60.).reshape(3, 4, 5)
arr2 = np.arange(24.).reshape(4, 3, 2)
print("อาร์เรย์ 1...\n", arr1)
print("\nอาร์เรย์ 2...\n", arr2)
print("\nมิติของอาร์เรย์ 1...\n", arr1.ndim)
print("\nมิติของอาร์เรย์ 2...\n", arr2.ndim)
print("\nรูปร่างของอาร์เรย์ 1...\n", arr1.shape)
print("\nรูปร่างของอาร์เรย์ 2...\n", arr2.shape)
print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes=([1,0], [0,1])))
ผลลัพธ์ที่คาดหวัง
อาร์เรย์ 1...
[[[ 0. 1. 2. 3. 4.] ... ] ... ]
อาร์เรย์ 2...
[[[ 0. 1.] [ 2. 3.] [ 4. 5.]] ... ]
มิติของอาร์เรย์ 1...
3
มิติของอาร์เรย์ 2...
3
รูปร่างของอาร์เรย์ 1...
(3, 4, 5)
รูปร่างของอาร์เรย์ 2...
(4, 3, 2)
Tensor dot product...
[[4400. 4730.]
[4532. 4874.]
[4664. 5018.]
[4796. 5162.]
[4928. 5306.]]