LƯU Ý: Tôi đã thực hiện các tính toán này một cách cụ thể, vì vậy một số lỗi có thể đã xuất hiện. Vui lòng thông báo về bất kỳ lỗi nào để tôi có thể sửa nó.
Nói chung trong bất kỳ CNN nào, thời gian đào tạo tối đa đều diễn ra trong Back-Propagation của các lỗi trong Lớp được kết nối đầy đủ (tùy thuộc vào kích thước hình ảnh). Ngoài ra bộ nhớ tối đa cũng bị chiếm bởi chúng. Dưới đây là một slide từ Stanford về các thông số VGG Net:
Rõ ràng bạn có thể thấy các lớp được kết nối đầy đủ đóng góp vào khoảng 90% các tham số. Vì vậy, bộ nhớ tối đa bị chiếm bởi chúng.
( 3 ∗ 3 ∗ 3 )( 3 ∗ 3 ∗ 3 )224 * 224224 * 224 * ( 3 * 3 * 3 )64224 * 22464 * 224 * 224 * ( 3 * 3 * 3 ) ≈ 87 * 106
56 * 56 * 25656 * 56( 3 ∗ 3 ∗ 256 )56 * 56256 * 56 * 56 * ( 3 * 3 * 256 ) ≈ 1850 * 106
s t r i de = 1
c h a n n e l so u t p u t∗ ( p i x e l O u t p u th e i gh t* P i x e l O u t p u tw i dt h)∗ ( fi l t e rh e i gh t* fi l t e rw i dt h∗ c h a n n e l si n p u t)
Nhờ có GPU nhanh, chúng tôi có thể dễ dàng xử lý các tính toán khổng lồ này. Nhưng trong các lớp FC, toàn bộ ma trận cần phải được tải, gây ra các vấn đề về bộ nhớ, thường không phải là trường hợp của các lớp chập, do đó việc đào tạo các lớp chập vẫn dễ dàng. Ngoài ra, tất cả những thứ này phải được tải trong bộ nhớ GPU chứ không phải RAM của CPU.
Ngoài ra đây là biểu đồ tham số của AlexNet:
Và đây là so sánh hiệu suất của các kiến trúc CNN khác nhau:
Tôi đề nghị bạn kiểm tra Bài giảng CS231n của Đại học Stanford để hiểu rõ hơn về các ngõ ngách của kiến trúc CNN.