Aula 25 – Tensor Flow – Keras – Conjunto de dados CIFAR-10 – VGG 2

Aula 25 – Tensor Flow – Keras – Conjunto de dados CIFAR-10 – VGG 2

Voltar para página principal do blog

Todas as aulas desse curso

Aula 24                      Aula 26 (Ainda não disponível)

Meu github:

https://github.com/toticavalcanti

Documentação oficial do TensorFlow:

https://www.tensorflow.org/

Quer aprender python3 de graça e com certificado? Acesse então:

https://workover.com.br/python-codigo-fluente

Python com Tensorflow

Python com Tensorflow

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

https://digitalinnovation.one/

Aproveito para deixar meus link de afiliados:

Hostinger

Digital Ocean

One.com

Toti:

https://www.youtube.com/channel/UCUEtjLuDpcOvR3mIUr-viOA

Backing track / Play-along:

https://www.youtube.com/channel/UCT3TryVMqTqYBjf5g5WAHfA

Código Fluente

https://www.youtube.com/channel/UCgn-O-88XBAwdG9gUWkkb0w

Putz!

https://www.youtube.com/channel/UCZXop2-CECwyFYmHbhnAkAw

Fiquem a vontade para me adicionar ao linkedin.

Notebook da aula

Aula 25 – Tensor Flow – Keras – Conjunto de dados CIFAR-10 – VGG 2

CIFAR-10

Nessa aula usaremos a arquitetura VGG 2.

Existem outras arquiteturas conhecidas de redes convolucionais:

  • AlexNet – que foi a primeira arquitetura de rede neural convolucional em grande escala que se saiu bem na classificação ImageNet – 2012.
  • ResNet – Um dos problemas que os ResNets resolvem é o famoso gradiente de desaparecimento.
  • Inception
  • DenseNet
  • VGG – explora um aspecto muito importante das CNNs: a profundidade.

Na camada de entrada a VGG obtém uma imagem RGB.

As camadas convolucionais na VGG usam um campo receptivo muito pequeno, 3×3, o menor tamanho possível que ainda captura esquerda / direita e cima / baixo.

No primeiro bloco


model.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same', input_shape=(32, 32, 3)))
model.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))

E no segundo bloco


model.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))

A camada de pooling serve para simplificar a informação da camada anterior.


model.add(MaxPooling2D((2, 2))) 

Assim como na convolução, no pooling, é escolhida uma unidade de área, por exemplo 2×2, para transitar por toda a saída da camada anterior.

A unidade de área é responsável por resumir a informação dessa área de 2×2 em um único valor.

Se a saída da camada anterior for 24×24, a saída do pooling será 12×12.

O método mais utilizado é o maxpooling e é exatamente ele que estamos usando no exemplo.

Fully connected

No final da rede temos uma camada totalmente conectada, onde sua entrada é a saída da camada anterior e sua saída são N neurônios, com N sendo a quantidade de classes que o modelo precisa classificar.


model.add(Dense(128, activation='relu', kernel_initializer='he_uniform'))
model.add(Dense(10, activation=tf.nn.softmax, name='logits'))

A saída da softmax são as probabilidades para a tarefa de classificação, e a sua entrada é a camada logits.

A camada logits normalmente produz valores de -infinity a + infinito e a camada softmax os transforma em valores entre 0 e 1.

Agora acesse o notebook:

Notebook da aula

Por essa aula é só.

Voltar para página principal do blog

Todas as aulas desse curso

Aula 24                      Aula 26 (Ainda não disponível)

Meu github:

https://github.com/toticavalcanti

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>