Deep Learning com TensorFlow 2.0: tudo o que você precisa saber
Publicados: 2021-01-05TensorFlow é a estrutura de aprendizado de máquina do Google. Ele é usado principalmente para tarefas relacionadas ao Deep Learning e também se integra perfeitamente a outras APIs do Google. O TensorFlow é claramente uma das bibliotecas mais usadas para Deep Learning no setor no momento e vale a pena aprender!
Ao final deste tutorial, você terá conhecimento do seguinte.
- O que é TensorFlow?
- O que há de novo no TF 2.0?
- TensorFlow vs Keras
- Instalando o TensorFlow
- Classificador de imagens no TensorFlow
Índice
O que é TensorFlow?
O TensorFlow começou como uma biblioteca de aprendizado profundo de código aberto do Google e agora é uma estrutura completa para processos de aprendizado de máquina de ponta a ponta. Você pode estar se perguntando por que o Google escolheu esse nome e o que significa “Tensor”.
O que é um tensor?
Tensores são efetivamente arrays multidimensionais que permitem que você execute operações complexas em arrays multidimensionais. No entanto, eles não são apenas uma matriz N-dimensional.
Um tensor também inclui as transformações como produto escalar, adição, multiplicação de matrizes, etc.
Mas por que eles são importantes?
Tensores não são novos. Eles estão em uso há muito tempo, mas suas características são fortemente exploradas na área de Deep Learning, onde os dados geralmente são enormes e de múltiplas dimensões.

Os tensores, assim como os arrays Numpy, também têm uma forma e um tipo de dados. Todos os tensores são imutáveis como números e strings do Python: você nunca pode atualizar o conteúdo de um tensor, apenas criar um novo.
Mas o que os diferencia dos arrays Numpy usuais é sua capacidade de utilizar a memória da GPU e o poder de computação, que é de extrema importância quando os dados são de alta dimensão e o tamanho é de milhões ou mais.
Os tensores são muito usados em frameworks de Deep Learning, como o Pytorch do Facebook e o TensorFlow do Google, que leva até o nome deles!
O Google também desenvolveu outro acelerador de IA, chamado Tensor Processing Unit (TPU), especialmente para o TensorFlow, que leva a otimização para um próximo nível!
Leia: Regularização em Deep Learning
O que há de novo no TF 2.0?
O Google lançou a primeira versão do TensorFlow 1 em 2015 pelo Google Brain Team.
Usar o TensorFlow 1.x para criar redes neurais não foi uma tarefa fácil, pois exigia muito código para ser escrito.
Avaliação preguiçosa vs avaliação ansiosa
Com o TensorFlow 1.x, costumava haver a necessidade de fazer sessões e executá-las para gerar a saída de qualquer “gráfico”. Vamos entender isso com o código abaixo
importe tensorflow como tf a = tf.constante(1) |
A execução do código acima não fornecerá a saída desejada, ou seja, 3. Isso ocorre porque o TensorFlow 1.x funcionou em sessões.
Uma sessão é um tipo de ambiente que contém todas as variáveis e as transformações que precisa fazer.
Foi feito um gráfico de transformações que não foi avaliado até que fosse especificamente chamado executando tf.session.run().
Portanto, o código acima retornará o que você espera se fizer isso:
tf.Session.run(c) |
Isso é chamado de avaliação preguiçosa. Como ele espera preguiçosamente até que seja especificamente dito para ser executado.
Esse processo demorado e complicado precisava ser resolvido e, portanto, surgiu a necessidade do TensorFlow 2.x.
O TF 2.x vem com avaliação Eager por padrão, o que torna muito fácil para nós codificar e executar os processos.
Não há sessões agora e o treinamento da rede neural que levou 100 linhas no TF 1.x leva menos de 20 com o TF 2.x.
A execução rápida do TensorFlow é um ambiente de programação imperativo que avalia as operações imediatamente, sem construir gráficos: as operações retornam valores concretos em vez de construir um gráfico computacional para ser executado posteriormente.
Isso facilita a introdução ao TensorFlow e aos modelos de depuração, além de reduzir o clichê.
TensorFlow vs Keras
A questão realmente não é TensorFlow vs Keras. É TensorFlow com Keras. A Keras forneceu uma API de alto nível no TensorFlow 1.x, o que facilitou muito o trabalho com ela.

Agora, com o TF 2.0, o TensorFlow tornou oficialmente o Keras parte de sua API para design e treinamento de modelos com o tf.keras.
Todo o código que foi feito anteriormente no Keras agora é sugerido para ser feito com tf.keras no TF 2.0, pois permite usar todos os componentes e ecossistema do TensorFlow, como:
- TensorFlow Serving, que é usado para veicular/implantar modelos do TensorFlow sem problemas.
- TensorFlow Lite, que é a versão móvel do TensorFlow capaz de rodar em Android e IOS.
- O TensorFlow.js é uma coleção de APIs que nos permite construir e treinar modelos usando a biblioteca de álgebra linear JavaScript de baixo nível ou a API de camadas de alto nível. Assim, os modelos de aprendizado profundo podem ser treinados e executados em um navegador.
- O TensorBoard é um conjunto de ferramentas de visualização para entender, depurar e otimizar os programas do TensorFlow.
Instalando o TensorFlow
Se você é novo no Machine Learning, a maneira mais fácil de fazer as coisas acontecerem é abrindo um Colab Notebook. Basta acessar https://colab.research.google.com/ e clicar em “New Python 3 Notebook”.
Certifique-se de que o kernel diz “conectado” no canto superior direito. Boas notícias, o TensorFlow vem pré-instalado no Google Colab.
Voilá! Você está pronto.
Para verificar se você está usando a versão correta, execute o snippet abaixo.
importe tensorflow como tf tf.__versão__ |
Deve dizer qualquer versão acima de 2.0.0 e você está pronto para ir.
Classificador de imagens no TensorFlow
Vamos agora examinar o “Hello World” dos problemas de Deep Learning – o conjunto de dados MNIST.
Construiremos uma rede neural curta para prever no conjunto de dados MNIST. Seguiremos os passos abaixo.
- Construir uma rede neural que classifica imagens.
- Treine uma rede neural.
- Avalie a precisão do modelo
Importando TensorFlow.
importe tensorflow como tf |
Carregando os dados MNIST.
mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() |
Construindo um modelo tf.keras.Sequential empilhando as camadas.
Também precisaríamos escolher um otimizador e uma função de perda para o modelo treinar.
modelo = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, ativação='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) |
Definindo a função de perda de entropia cruzada categórica esparsa.
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) |
Compilando o modelo.
model.compile(otimizador='adam', perda=perda_fn, métricas=['precisão']) |
Treinando o modelo com 5 épocas.
model.fit(x_train, y_train, épocas=5) |
Avaliação do modelo.
model.evaluate(x_test, y_test, verbose=2) |
313/313 – 0s – perda: 0,0825 – precisão: 0,9753 [0,082541823387146, 0,9753000140190125] |
O classificador de imagem agora é treinado com precisão de ~ 98% neste conjunto de dados.
Antes de você ir
O TensorFlow 2 se concentra na simplicidade e facilidade de uso, com atualizações como execução rápida, APIs intuitivas de nível superior e construção de modelo flexível em qualquer plataforma.

O TensorFlow é a biblioteca/ferramenta para qualquer tarefa de aprendizado profundo nos dias de hoje. A outra biblioteca mais usada e popular é o PyTorch do Facebook.
O ecossistema estendido do TensorFlow o torna um ótimo lugar para começar sua jornada de Deep Learning. É fácil de entender e, mais importante, fácil de implementar.
O melhor lugar para começar é com a API Sequential de fácil utilização. Você pode criar modelos conectando blocos de construção. Saiba mais sobre técnicas de aprendizado profundo.
Conclusão
Então, agora que você tem uma ideia detalhada de todas as principais estruturas de Deep Learning existentes, você pode tomar uma decisão informada e escolher a que melhor se adapta ao seu projeto.
Se você estiver interessado em saber mais sobre aprendizado profundo e inteligência artificial, confira nosso programa PG Diploma in Machine Learning and AI, projetado para profissionais que trabalham e fornece mais de 30 estudos de caso e atribuições, mais de 25 sessões de orientação do setor, mais de 5 mãos práticas -em projetos capstone, mais de 450 horas de treinamento rigoroso e assistência para colocação de emprego com as principais empresas.