Какой слой занимает больше времени в обучении CNN? Сверточные слои против слоев FC


11

В Convolutional Neural Network какой слой потребляет максимальное время на тренировке? Сверточные слои или Полностью связанные слои? Мы можем взять архитектуру AlexNet, чтобы понять это. Я хочу видеть временную остановку тренировочного процесса. Мне нужно сравнение относительного времени, чтобы мы могли использовать любую постоянную конфигурацию графического процессора.

Ответы:


11

ПРИМЕЧАНИЕ. Я сделал эти расчеты умозрительно, поэтому, возможно, закрались некоторые ошибки. Пожалуйста, сообщите о любых таких ошибках, чтобы я мог их исправить.

Вообще в любом 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

sTряdезнак равно1

счасaNNеLsоUTпUT*(пяИксеLОUTпUTчасеягчасT*пяИксеLОUTпUTвесяdTчас)*(еяLTерчасеягчасT*еяLTервесяdTчас*счасaNNеLsяNпUT)

Благодаря быстрым графическим процессорам мы легко справляемся с этими огромными вычислениями. Но в слоях FC должна быть загружена вся матрица, что вызывает проблемы с памятью, что, как правило, не относится к сверточным слоям, поэтому обучение сверточным слоям все еще легко. Кроме того, все они должны быть загружены в самой памяти графического процессора, а не в оперативной памяти процессора.

Также вот таблица параметров AlexNet:

enter image description here

А вот сравнение производительности различных архитектур CNN:

enter image description here

Я предлагаю вам проверить CS231n Лекцию 9 Стэнфордского университета для лучшего понимания закоулков архитектуры CNN.


4

Поскольку CNN содержит операцию свертки, но DNN использует Конструктивное расхождение для обучения. CNN является более сложным с точки зрения обозначения Big O.

Для справки:

1) сложность времени CNN
https://arxiv.org/pdf/1412.1710.pdf

2) Полностью связанные слои / Глубокая нейронная сеть (DNN) / Многослойный персептрон (MLP) https://www.researchgate.net/post/What_is_the_time_complexity_of_Multilayer_Perceptron_MLP_and_other_neural_networks

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.