Welche Schicht verbraucht mehr Zeit im CNN-Training? Faltungsschichten gegen FC-Schichten

11

Welche Schicht verbraucht im Convolutional Neural Network maximal Zeit im Training? Faltungsschichten oder vollständig verbundene Schichten? Wir können die AlexNet-Architektur verwenden, um dies zu verstehen. Ich möchte eine zeitliche Aufteilung des Trainingsprozesses sehen. Ich möchte einen relativen Zeitvergleich, damit wir jede konstante GPU-Konfiguration vornehmen können.

Ruchit Dalwadi
quelle

Antworten:

11

HINWEIS: Ich habe diese Berechnungen spekulativ durchgeführt, sodass sich möglicherweise einige Fehler eingeschlichen haben. Bitte informieren Sie über solche Fehler, damit ich sie korrigieren kann.

Im Allgemeinen wird in jedem CNN die maximale Trainingszeit für die Rückübertragung von Fehlern in der vollständig verbundenen Ebene verwendet (abhängig von der Bildgröße). Auch der maximale Speicher wird von ihnen belegt. Hier ist eine Folie von Stanford über die VGG Net-Parameter:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Sie können deutlich sehen, dass die vollständig verbundenen Schichten zu etwa 90% der Parameter beitragen. Der maximale Speicher wird also von ihnen belegt.

(333)(333)224224224224(333)6422422464224224(333)87106

56562565656(33256)56562565656(33256)1850106

stride=1

channelsoutput(pixelOutputheightpixelOutputwidth)(filterheightfilterwidthchannelsinput)

Dank schneller GPUs sind wir leicht in der Lage, diese riesigen Berechnungen durchzuführen. In FC-Schichten muss jedoch die gesamte Matrix geladen werden, was zu Speicherproblemen führt, was im Allgemeinen bei Faltungsschichten nicht der Fall ist, so dass das Training von Faltungsschichten immer noch einfach ist. Außerdem müssen alle diese in den GPU-Speicher selbst und nicht in den RAM der CPU geladen werden.

Auch hier ist das Parameterdiagramm von AlexNet:

Geben Sie hier die Bildbeschreibung ein

Und hier ist ein Leistungsvergleich verschiedener CNN-Architekturen:

Geben Sie hier die Bildbeschreibung ein

Ich schlage vor, Sie lesen die CS231n-Vorlesung 9 der Stanford University, um die Ecken und Winkel der CNN-Architekturen besser zu verstehen.

DuttaA
quelle
4

Da CNN Faltungsoperationen enthält, verwendet DNN konstruktive Divergenz für das Training. CNN ist in Bezug auf die Big O-Notation komplexer.

Als Referenz:

1) CNN-Zeitkomplexität
https://arxiv.org/pdf/1412.1710.pdf

2) Vollständig verbundene Schichten / Deep Neural Network (DNN) / Multi Layer Perceptron (MLP) https://www.researchgate.net/post/What_is_the_time_complexity_of_Multilayer_Perceptron_MLP_and_other_neural_networks

Ketul Parikh
quelle