Aula 20 - Tensor Flow - Keras - Redes Neurais - MNIST

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

Aula 20 - Tensor Flow - Keras - Redes Neurais - MNIST

Vamos usar o TensorFlow 2 e o Keras no exemplo dessas próximas aulas. Muitas mudanças foram aplicadas no TensorFlow 2 para facilitar a vida dos desenvolvedores.

Keras

O Keras é o framework mais utilizado pelos iniciantes na área de deep learn, justamente por sua facilidade de uso e rápida prototipagem. O Keras é uma camada de alto-nível para outros framework de Deep Learning, como TensorFlow, Theano e CNTK. No TensorFlow 2.0, o Keras foi incorporado a ele através do módulo tf.keras. O Keras é altamente modular, o que facilita muito, entretanto, dá para flexibilizar muito mais o TF do que o Keras.

Funções vs. Sessões

Uma chamada à session.run() funciona quase como uma chamada de função. Você especifica as entradas e a função a ser chamada, e recebe de volta o conjunto de saídas. No TensorFlow 2.0, você pode decorar uma função Python usando tf.function() para marcar uma função a ser compilada em tempo de execução (JIT compilation). Dessa forma, o TensorFlow vai rodá-la em um único grafo! Isso dá ao TensorFlow alguns benefícios no modo grafo: Desempenho: a função marcada com tf.function() pode ser otimizada (node pruning, kernel fusion, etc.) Portabilidade: a função pode ser exportada/reimportada (SavedModel 2.0 RFC), permitindo ao usuários reuso e compartilhamento de funções TensorFlow. O TensorFlow 1.X era baseado no padrão “kitchen sink”, ou seja, todos os cálculos possíveis era previamente carregados e, então, os tensores selecionados eram calculados via session.run(). No TensorFlow 2.0, a ideia é escrever o código em pequenas funções que serão chamadas quando necessário. Só use tf.function em cálculos de alto-nível, por exemplo, um passo do treinamento ou a etapa feedforward da rede.

MNIST

Iremos utilizar o keras para carregar a base de dados com o comando: tf.keras.datasets.mnist Além disso, vamos usá-lo na definição do modelo com:  tf.keras.models.Sequential

Modelo sequencial

Um modelo Sequential é apropriado para uma pilha simples de camadas onde cada camada tem exatamente um tensor de entrada e um tensor de saída .
Usamos o componente Sequential que nos permite agrupar uma sequência de camadas. Um ponto importante a ser observado aqui é que estamos configurando nossa arquitetura de rede neural como um pipeline. Podemos pensar na variável model resultante, como uma função que pega um lote de imagens como entradas e produz um lote de logits. Logits são previsões (ou saídas) não normalizadas de um modelo. No contexto do aprendizado profundo, a camada logits significa a camada que alimenta a softmax (ou outra normalização). A saída da softmax são as probabilidades para a tarefa de classificação e sua entrada é a camada logits. A camada logits normalmente produz valores de -infinity a + infinito e a camada softmax os transforma em valores entre 01. Clique aqui no link do notebook da aula, nele tem uma explicação detalhada em markdown, do que vamos fazer, e os códigos prontos para execução.

Por essa aula é só.

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. ;)