Qual camada consome mais tempo no treinamento da CNN? Camadas de convolução vs camadas de FC

11

Na Rede Neural Convolucional, qual camada consome o máximo de tempo em treinamento? Camadas de convolução ou camadas totalmente conectadas? Podemos usar a arquitetura AlexNet para entender isso. Quero ver a separação do tempo do processo de treinamento. Quero uma comparação de tempo relativo para que possamos fazer qualquer configuração constante da GPU.

Ruchit Dalwadi
fonte

Respostas:

11

NOTA: Fiz esses cálculos especulativamente, portanto, alguns erros podem ter surgido. Informe esses erros para que eu possa corrigi-lo.

Em geral, em qualquer CNN, o tempo máximo de treinamento vai para a propagação posterior de erros na camada totalmente conectada (depende do tamanho da imagem). Além disso, a memória máxima também é ocupada por eles. Aqui está um slide de Stanford sobre os parâmetros da VGG Net:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

É claro que você pode ver que as camadas totalmente conectadas contribuem com cerca de 90% dos parâmetros. Portanto, a memória máxima é ocupada por eles.

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

56.56.25656.56.(33256)56.56.25656.56.(33256)1850106

strEude=1

chumanneeusovocêtpvocêt(pEuxeeuOvocêtpvocêtheEughtpEuxeeuOvocêtpvocêtWEudth)(fEueuterheEughtfEueuterWEudthchumanneeusEunpvocêt)

Graças às GPUs rápidas, somos capazes de lidar facilmente com esses cálculos enormes. Porém, nas camadas FC, toda a matriz precisa ser carregada, o que causa problemas de memória, o que geralmente não é o caso das camadas convolucionais; portanto, o treinamento das camadas convolucionais ainda é fácil. Além disso, todos esses itens devem ser carregados na própria memória da GPU e não na RAM da CPU.

Também aqui está o gráfico de parâmetros do AlexNet:

insira a descrição da imagem aqui

E aqui está uma comparação de desempenho de várias arquiteturas da CNN:

insira a descrição da imagem aqui

Sugiro que você verifique a CS231n Lecture 9 da Universidade de Stanford para entender melhor os cantos e recantos das arquiteturas da CNN.

DuttaA
fonte
4

Como a CNN contém operação de convolução, a DNN usa divergência construtiva para treinamento. A CNN é mais complexa em termos da notação Big O.

Para referência:

1) Complexidade temporal da CNN
https://arxiv.org/pdf/1412.1710.pdf

2) Camadas totalmente conectadas / 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
fonte