Nhân ma trận theo lô (batch)

Trung bình

numpyđại số tuyến tính4 test · 12 giây · sai số 1e-5

Mô hình học sâu xử lý dữ liệu theo lô: A có shape (b, n, k), B có shape (b, k, m). Trả về C (b, n, m) với C[i] = A[i] @ B[i].

  • np.matmul / toán tử @ tự hiểu chiều đầu là chiều lô. Thử thêm np.einsum('bnk,bkm->bnm', A, B).

Viết hàm

batch_matmul(A, B)

Tham số

  • A: mảng (b, n, k)
  • B: mảng (b, k, m)

Trả về

Mảng (b, n, m).

Ví dụ

Tham số

A = [[[1,2]],[[3,4]]]
B = [[[1],[1]],[[2],[0.5]]]

Kết quả

[[[3.0]],[[8.0]]]

Tham số

A = [[[1,1],[1,1]]]
B = [[[1,0],[0,1]]]

Kết quả

[[[1.0,1.0],[1.0,1.0]]]

Bài tiếp theo: Chỉ số của K phần tử lớn nhất →

Python · NumPy

Bấm “Chạy thử” để gọi batch_matmul() với 2 ví dụ trong đề và so sánh kết quả. Dùng print() thoải mái để gỡ lỗi.

Nhân ma trận theo lô (batch) — Luyện tập | CodeViệt