ПРИМІТКА. Я зробив ці розрахунки спекулятивно, тому деякі помилки могли виникнути. Будь ласка, повідомте про будь-які подібні помилки, щоб я міг їх виправити.
Загалом, у будь-якій CNN максимальний час навчання проходить у "Поширенні помилок назад" на повністю з'єднаному шарі (залежить від розміру зображення). Також максимальна пам'ять також зайнята ними. Ось слайд зі Стенфорда про параметри VGG Net:
Зрозуміло, що ви можете бачити, що повністю пов'язані шари вносять близько 90% параметрів. Тож максимальна пам’ять зайнята ними.
( 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 tч е я жч т∗ p i x e l O u t p u tш я дт год)∗ ( fя л т е рч е я жч т∗ fя л т е рш я дт год∗ c h a n n e l sя п п у т)
Завдяки швидким графічним процесорам ми легко впораємося з цими величезними розрахунками. Але в шарах FC вся матриця повинна бути завантажена, що спричиняє проблеми з пам’яттю, як правило, це не стосується згорткових шарів, тому навчання конволюційних шарів все ще просто. Крім того, всі вони повинні завантажуватися в саму пам'ять GPU, а не в оперативну пам'ять процесора.
Також ось діаграма параметрів AlexNet:
Ось порівняння продуктивності різних архітектур CNN:
Я пропоную вам ознайомитись з CS231n лекцією 9 Стенфордського університету для кращого розуміння куточків архітектур CNN.