Qual é o conceito dos Gargalos Tensorflow?


Respostas:


20

O gargalo em uma rede neural é apenas uma camada com menos neurônios que a camada abaixo ou acima dela. Ter essa camada incentiva a rede a compactar representações de recursos para melhor se encaixar no espaço disponível, a fim de obter a melhor perda durante o treinamento.

Em uma CNN (como a rede de criação do Google), são adicionadas camadas de gargalo para reduzir o número de mapas de recursos (também conhecidos como "canais") na rede, que, de outra forma, tendem a aumentar em cada camada. Isso é obtido usando convoluções 1x1 com menos canais de saída do que os canais de entrada.

Normalmente, você não calcula pesos diretamente para as camadas de gargalo, o processo de treinamento lida com isso, como em todos os outros pesos. Selecionar um bom tamanho para uma camada de gargalo é algo que você precisa adivinhar e depois experimentar, a fim de encontrar arquiteturas de rede que funcionem bem. O objetivo aqui é geralmente encontrar uma rede que generalize bem para novas imagens, e as camadas de gargalo ajudam a reduzir o número de parâmetros na rede e, ao mesmo tempo, permitem que ela seja profunda e represente muitos mapas de recursos.


8

Imagine, você deseja recalcular a última camada de um modelo pré-treinado:

Input->[Freezed-Layers]->[Last-Layer-To-Re-Compute]->Output

Para treinar [Última camada a recalcular] , é necessário avaliar as saídas de [Camadas congeladas] várias vezes para um dado dado de entrada. Para economizar tempo, você pode calcular essas saídas apenas uma vez .

Input#1->[Freezed-Layers]->Bottleneck-Features-Of-Input#1

Em seguida, você armazena todos os Recursos de gargalo da entrada # ie os usa diretamente para treinar [Última camada a ser recalculada].

Explicações da função "cache_bottlenecks" do exemplo "image_retraining":

Como é provável que leiamos a mesma imagem várias vezes (se não houver distorções aplicadas durante o treinamento), isso poderá acelerar bastante se calcularmos os valores da camada de gargalo uma vez para cada imagem durante o pré-processamento e depois apenas lermos esses valores em cache repetidamente durante o treinamento.


5

O gargalo de fluxo tensor é a última fase de pré-processamento antes do início do treinamento real com reconhecimento de dados. É uma fase em que uma estrutura de dados é formada a partir de cada imagem de treinamento que a fase final do treinamento pode ocorrer e distingue a imagem de qualquer outra imagem usada no material de treinamento. Um pouco como uma impressão digital da imagem.

Ele está envolvido no comando de re-treinamento e, como o nome sugere, esse é o principal consumidor da execução do comando. A quantidade de material de treinamento pode ter que ser comprometida se esse gargalo parecer muito demorado.

Como é um comando de linha de comando, não conheço o algoritmo exato. O algoritmo é público em código no Github, mas é supostamente tão complicado (o tempo de execução é muito longo por definição) que acredito que não posso anotá-lo neste tipo de resposta.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.