ConvNet do zero: simplesmente adorável Numpy, Forward Pass | Parte 1 |

Manik Soni Blocked Unblock Seguir Seguindo 5 de janeiro

Frameworks e APIs de alto nível facilitam muito a implementação de uma arquitetura tão complexa, mas podem ser implementados a partir do zero, o que nos dá a base da verdade da intuição de como o ConvNets realmente funciona.

– Esboço do Artigo

Nós estaremos implementando os blocos de construção de uma rede neural convolucional! Cada função que implementaremos terá instruções detalhadas que guiarão você pelas etapas necessárias:

  • Preenchimento zero
  • Convolução para a frente
  • Pooling forward

Usaremos os notebooks DLS da Jupyter para executar nossos módulos. Confira DLS aqui. O fato é que ele vem com bibliotecas pré-instaladas e estruturas necessárias para Deep Learning. Então é bom ir para DL.

Um vídeo passo a passo de Deep Cognition
Olá a todos! Neste artigo, vou compartilhar com vocês vários vídeos que te guiarão pela Plataforma da Deep Cognition… em relação adatascience.com
Gere histórias usando RNNs | pure Mathematics com código |:
Oi leitor! hackernoon.com

Preenchimento de zero

• O preenchimento com zero adiciona zeros ao redor das bordas de uma determinada imagem.

Visualização de preenchimento zero

Importância do preenchimento zero:

  • Isso impede que a entrada diminua mais rapidamente quando passada nas camadas mais profundas. Outro caso especial é o "mesmo" preenchimento que, mesmo após a convolução, não diminui o tamanho da entrada.
  • Também ajuda a evitar a perda de informações nas bordas da imagem; caso contrário, as informações nas bordas terão uma importância muito menor em comparação com as informações dentro das bordas.

vamos pular no código:

Único passo de convolução

Nesta parte, vamos implementar uma única etapa de convolução, na qual aplicamos o filtro a uma única posição da entrada. Isto será usado para construir uma unidade convolucional, que:

  • Leva um volume de entrada
  • Aplica um filtro em todas as posições da entrada
  • Emite outro volume (geralmente de tamanho diferente)

Figura 2 : Operação de convolução
com um filtro de 2×2 e um passo de 1 (passo = quantidade você move a janela cada vez que você desliza)

Redes Neurais Convolucionais – Forward pass

No passe para frente, pegamos muitos filtros e os envolvemos na entrada. Cada 'convolução' fornece uma saída de matriz 2D. Em seguida, você empilha essas saídas para obter um volume 3D:

Camada de agrupamento

A camada de pool (POOL) reduz a altura e a largura da entrada. Isso ajuda a reduzir a computação, além de ajudar a tornar os detectores de recursos mais invariantes à sua posição na entrada . Os dois tipos de camadas de agrupamento são:

  • Camada de pool máximo: desliza uma janela (f, f) sobre a entrada e armazena o valor máximo da janela na saída.
  • Camada de pool médio: desliza uma janela (f, f) sobre a entrada e armazena o valor médio da janela na saída.

módulo para frente de piscina

Complete Jupyter Notebook do Deep Learning Studio!

Manik9 / ConvNets_from_scratch
Implementação de ConvNets apenas usando o Numpy. Contribuir para o desenvolvimento do Manik9 / ConvNets_from_scratch criando um… github.com
Abra o Notebook DLS e faça o upload do seu Notebook Jupyter

Se você gostou deste artigo, faça e compartilhe. Para mais artigos sobre Deep Learning, siga-me no Medium e no LinkedIn .

Obrigado pela leitura ?

Feliz Numpy.