Aula 26 – Tensor Flow – Keras – Conjunto de dados CIFAR-10 – VGG 3
Aula 26 – Tensor Flow – Keras – Conjunto de dados CIFAR-10 – VGG 3
Voltar para página principal do blog
Todas as aulas desse curso
Aula 25 Aula 27
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
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
PIX para doações
Se quiser copiar o código do PIX:
00020126580014BR.GOV.BCB.PIX013643c5f950-535b-4658-b91f-1f1d135fe4105204000053039865802BR5925Antonio Cavalcante de Pau6009SAO PAULO61080540900062070503***6304946B
Aula 26 – Tensor Flow – Keras – Conjunto de dados CIFAR-10 – VGG 3
CIFAR-10
Nesse modelo, iremos acrescentar mais um bloco de camadas ao nosso modelo.
#bloco 1
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'))
model.add(MaxPooling2D((2, 2)))
#bloco 2
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'))
model.add(MaxPooling2D((2, 2)))
#bloco 3
model.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(MaxPooling2D((2, 2)))
A arquitetura VGG empilha camadas convolucionais com pequenos filtros 3 × 3, seguidos por uma camada de max pooling.
Juntas, essas camadas formam um bloco e esses blocos podem ser repetidos.
O número de filtros em cada bloco é aumentado com a profundidade da rede, como 32, 64, 128…
Agora acesse o notebook:
Notebook da aula
Depois de rodar os 3 modelos, VGG1, VGG2 e VGG3, vimos que o modelo foi capaz de aprender em cima do conjunto de dados de treinamento, mostrando uma melhoria no conjunto de dados de treinamento que continuou por pelo menos 40 épocas, ou talvez mais.
Isso é um bom sinal, pois mostra que o problema pode ser aprendido e que todos os três modelos têm capacidade suficiente para aprender o problema.
Os resultados do modelo no conjunto de dados de teste mostraram uma melhoria na precisão da classificação com cada aumento na profundidade do modelo.
É possível que essa tendência continue se modelos com quatro e cinco camadas forem avaliados, isso pode ser uma extensão interessante.
No entanto, todos os três modelos mostraram o mesmo padrão de overfitting por volta de 15 a 20 épocas.
Esses resultados sugerem que o modelo com três blocos VGG é um bom ponto de partida ou linha base para começar nossa investigação.
Os resultados também sugerem que o modelo precisa de regularização para lidar com o rápido o sobreajuste (overfitting) no conjunto de dados de teste.
De forma mais geral, os resultados sugerem que pode ser útil investigar técnicas que retardam a convergência (taxa de aprendizado) do modelo.
Isso pode incluir técnicas como aumento de dados, bem como programações de taxa de aprendizagem, alterações no tamanho do lote entre outras técnicas.