Como determinar o número de operadores convolucionais na CNN?

10

Na tarefa de visão computacional, como a classificação de objetos, com as Redes Neurais Convolucionais (CNN), a rede oferece um desempenho atraente. Mas não tenho certeza de como configurar os parâmetros em camadas convolucionais. Por exemplo, uma imagem em escala de cinza ( 480x480), a primeira camada convolucional pode usar um operador convolucional como 11x11x10, em que o número 10 significa o número de operadores convolucionais.

A questão é como determinar o número de operadores convolucionais na CNN?

Zhi Lu
fonte

Respostas:

11

Estou assumindo que, quando você diz 11x11x10que quer dizer que tem uma camada com 10, 11x11 filtros. Portanto, o número de convoluções que você fará é simplesmente 10 convoluções discretas em 2D por filtro no seu banco de filtros. Então, digamos que você tenha uma rede:

480x480x1    # your input image of 1 channel
11x11x10     # your first filter bank of 10, 11x11 filters
5x5x20       # your second filter bank of 20, 5x5 filters
4x4x100      # your final filter bank of 100, 4x4 filters    

Você fará: convoluções 2D multicanais, cada uma com uma profundidade de 1, 10 e 20, respectivamente. Como você pode ver, a profundidade de cada convolução vai mudar em função da profundidade do volume de entrada da camada anterior.10+20+100=130

Mas eu assumi que você está tentando descobrir como comparar isso com uma convolução 2D de canal único. Bem, você pode simplesmente multiplicar a profundidade de cada volume de entrada pelo número de filtros em cada camada e adicioná-los. No seu caso: .10+200+2000=2,210

Agora isso só lhe diz quantos único canal 2D circunvoluções que você está fazendo, e não como computacionalmente intensivo cada convolução é, a intensidade computacional de cada convolução vai depender de uma série de parâmetros como image_size, image_depth, filter_size, o seu stride(o quão longe você pisa entre cada indivíduo cálculo de filtro), o número de camadas de pool que você tem etc.

sabalaba
fonte