Exemplos do TensorFlow
Este tutorial foi projetado para mergulhar facilmente no TensorFlow, por meio de exemplos. Para facilitar a leitura, inclui cadernos e códigos-fonte com explicação, para TF v1 e v2.
É adequado para iniciantes que desejam encontrar exemplos claros e concisos sobre o TensorFlow. Além das implementações 'brutas' tradicionais do TensorFlow, você também pode encontrar as práticas mais recentes da API do TensorFlow (como layers
, estimator
, dataset
, ...).
Atualização (16/05/2020): Movendo todos os exemplos padrão para TF2. Para exemplos de TF v1: verifique aqui.
Índice do tutorial
0 - Pré-requisito
- Introdução ao aprendizado de máquina.
- Introdução ao conjunto de dados MNIST.
1 - Introdução
- Olá mundo (caderno). Exemplo muito simples para aprender como imprimir “hello world” usando TensorFlow 2.0+.
- Operações Básicas (caderno). Um exemplo simples que cobre as operações básicas do TensorFlow 2.0+.
2 – Modelos Básicos
- Regressão Linear (caderno). Implemente uma regressão linear com TensorFlow 2.0+.
- Regressão Logística (caderno). Implemente uma regressão logística com TensorFlow 2.0+.
- Word2Vec (incorporação de palavras) (caderno). Crie um modelo de incorporação de palavras (Word2Vec) a partir de dados da Wikipedia, com TensorFlow 2.0+.
- GBDT (árvores de decisão com gradiente impulsionado) (cadernos). Implemente árvores de decisão com gradiente impulsionado com TensorFlow 2.0+ para prever o valor da casa usando o conjunto de dados Boston Housing.
3 – Redes Neurais
Supervisionado
- Rede Neural Simples (caderno). Use a API de 'camadas' e 'modelo' do TensorFlow 2.0 para construir uma rede neural simples para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Simples (baixo nível) (notebook). Implementação bruta de uma rede neural simples para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Convolucional (notebook). Use a API de 'camadas' e 'modelo' do TensorFlow 2.0+ para construir uma rede neural convolucional para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Convolucional (baixo nível) (notebook). Implementação bruta de uma rede neural convolucional para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Recorrente (LSTM) (notebook). Construa uma rede neural recorrente (LSTM) para classificar o conjunto de dados de dígitos MNIST, usando 'camadas' e API de 'modelo' do TensorFlow 2.0.
- Rede Neural Recorrente Bidirecional (LSTM) (notebook). Construa uma rede neural recorrente bidirecional (LSTM) para classificar o conjunto de dados de dígitos MNIST, usando 'camadas' e API de 'modelo' do TensorFlow 2.0+.
- Rede Neural Recorrente Dinâmica (LSTM) (notebook). Crie uma rede neural recorrente (LSTM) que executa cálculos dinâmicos para classificar sequências de comprimento variável, usando 'camadas' e API de 'modelo' do TensorFlow 2.0+.
Não supervisionado
- Codificador automático (notebook). Construa um codificador automático para codificar uma imagem em uma dimensão inferior e reconstrua-a.
- DCGAN (Redes Adversariais Gerativas Convolucionais Profundas) (caderno). Construa uma Rede Adversarial Gerativa Convolucional Profunda (DCGAN) para gerar imagens a partir de ruído.
4 - Utilitários
- Salvar e restaurar um modelo (notebook). Salve e restaure um modelo com TensorFlow 2.0+.
- Crie camadas e módulos personalizados (notebook). Aprenda como criar suas próprias camadas/módulos e integrá-los aos modelos do TensorFlow 2.0+.
- Tensorboard (caderno). Rastreie e visualize gráficos de computação de redes neurais, métricas, pesos e muito mais usando o TensorFlow 2.0+ tensorboard.
5 - Gerenciamento de dados
- Carregar e analisar dados (notebook). Crie um pipeline de dados eficiente com o TensorFlow 2.0 (matrizes Numpy, imagens, arquivos CSV, dados personalizados, ...).
- Construir e carregar TFRecords (notebook). Converta dados no formato TFRecords e carregue-os com o TensorFlow 2.0+.
- Transformação de imagem (ou seja, aumento de imagem) (caderno). Aplique várias técnicas de aumento de imagem com o TensorFlow 2.0+ para gerar imagens distorcidas para treinamento.
6 - Ferragens
- Treinamento Multi-GPU (notebook). Treine uma rede neural convolucional com várias GPUs no conjunto de dados CIFAR-10.
TensorFlow v1
O índice do tutorial para TF v1 está disponível aqui: Exemplos do TensorFlow v1.15. Ou veja abaixo uma lista de exemplos.
Conjunto de dados
Alguns exemplos requerem conjunto de dados MNIST para treinamento e teste. Não se preocupe, este conjunto de dados será baixado automaticamente ao executar exemplos. MNIST é um banco de dados de dígitos manuscritos. Para uma descrição rápida desse conjunto de dados, você pode conferir este caderno.
Site oficial: http://yann.lecun.com/exdb/mnist/.
Instalação
Para baixar todos os exemplos, basta clonar este repositório:
git clone https://github.com/aymericdamien/TensorFlow-Examples
Para executá-los, você também precisa da versão mais recente do TensorFlow. Para instalá-lo:
ou (com suporte para GPU):
pip install tensorflow_gpu
Para obter mais detalhes sobre a instalação do TensorFlow, você pode verificar o Guia de instalação do TensorFlow
Exemplos do TensorFlow v1 – Índice
O índice do tutorial para TF v1 está disponível aqui: Exemplos do TensorFlow v1.15.
0 - Pré-requisito
- Introdução ao aprendizado de máquina.
- Introdução ao conjunto de dados MNIST.
1 - Introdução
- Olá mundo (caderno) (código). Exemplo muito simples para aprender como imprimir “hello world” usando TensorFlow.
- Operações Básicas (caderno) (código). Um exemplo simples que cobre as operações básicas do TensorFlow.
- Noções básicas da API TensorFlow Eager (notebook) (código). Comece com a API Eager do TensorFlow.
2 – Modelos Básicos
- Regressão Linear (caderno) (código). Implemente uma regressão linear com TensorFlow.
- Regressão Linear (eager api) (notebook) (código). Implemente uma regressão linear usando a API Eager do TensorFlow.
- Regressão Logística (caderno) (código). Implemente uma regressão logística com TensorFlow.
- Regressão Logística (eager api) (notebook) (código). Implemente uma regressão logística usando a API Eager do TensorFlow.
- Vizinho mais próximo (caderno) (código). Implemente o algoritmo do vizinho mais próximo com TensorFlow.
- K-Means (caderno) (código). Crie um classificador K-Means com TensorFlow.
- Random Forest (caderno) (código). Crie um classificador Random Forest com TensorFlow.
- Árvore de decisão com gradiente impulsionado (GBDT) (caderno) (código). Crie uma árvore de decisão com gradiente impulsionado (GBDT) com TensorFlow.
- Word2Vec (incorporação de palavras) (caderno) (código). Crie um modelo de incorporação de palavras (Word2Vec) a partir de dados da Wikipedia, com TensorFlow.
3 – Redes Neurais
Supervisionado
- Rede Neural Simples (caderno) (código). Construa uma rede neural simples (também conhecida como Perceptron multicamada) para classificar o conjunto de dados de dígitos MNIST. Implementação bruta do TensorFlow.
- Rede Neural Simples (tf.layers/estimator api) (notebook) (código). Use a API de 'camadas' e 'estimador' do TensorFlow para construir uma rede neural simples (também conhecida como Perceptron multicamadas) para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Simples (API ansiosa) (notebook) (código). Use a API TensorFlow Eager para construir uma rede neural simples (também conhecida como Perceptron multicamada) para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Convolucional (caderno) (código). Construa uma rede neural convolucional para classificar o conjunto de dados de dígitos MNIST. Implementação bruta do TensorFlow.
- Rede Neural Convolucional (tf.layers/estimator api) (notebook) (código). Use a API de 'camadas' e 'estimador' do TensorFlow para construir uma rede neural convolucional para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Recorrente (LSTM) (notebook) (código). Construa uma rede neural recorrente (LSTM) para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Recorrente Bidirecional (LSTM) (notebook) (código). Construa uma rede neural recorrente bidirecional (LSTM) para classificar o conjunto de dados de dígitos MNIST.
- Rede Neural Recorrente Dinâmica (LSTM) (notebook) (código). Construa uma rede neural recorrente (LSTM) que realiza cálculos dinâmicos para classificar sequências de comprimentos diferentes.
Não supervisionado
- Auto-Encoder (notebook) (código). Construa um codificador automático para codificar uma imagem em uma dimensão inferior e reconstrua-a.
- Auto-codificador variacional (notebook) (código). Construa um codificador automático variacional (VAE), para codificar e gerar imagens a partir de ruído.
- GAN (Redes Adversariais Generativas) (caderno) (código). Construa uma Rede Adversarial Generativa (GAN) para gerar imagens a partir de ruído.
- DCGAN (Deep Convolutional Generative Adversarial Networks) (caderno) (código). Construa uma Rede Adversarial Gerativa Convolucional Profunda (DCGAN) para gerar imagens a partir de ruído.
4 - Utilitários
- Salvar e restaurar um modelo (notebook) (código). Salve e restaure um modelo com o TensorFlow.
- Tensorboard - Visualização de gráficos e perdas (notebook) (código). Use o Tensorboard para visualizar o gráfico de cálculo e traçar a perda.
- Tensorboard - Visualização avançada (notebook) (código). Indo mais fundo no Tensorboard; visualize as variáveis, gradientes e muito mais...
5 - Gerenciamento de dados
- Construa um conjunto de dados de imagens (caderno) (código). Crie seu próprio conjunto de dados de imagens com filas de dados do TensorFlow, a partir de pastas de imagens ou de um arquivo de conjunto de dados.
- API TensorFlow Dataset (notebook) (código). Apresentando a API TensorFlow Dataset para otimizar o pipeline de dados de entrada.
- Carregar e analisar dados (notebook). Crie um pipeline de dados eficiente (matrizes Numpy, imagens, arquivos CSV, dados personalizados, ...).
- Construir e carregar TFRecords (notebook). Converta os dados no formato TFRecords e carregue-os.
- Transformação de imagem (ou seja, aumento de imagem) (caderno). Aplicar diversas técnicas de aumento de imagem para gerar imagens distorcidas para treinamento.
6 - Multi GPU
- Operações básicas em multi-GPU (notebook) (código). Um exemplo simples de introdução de multi-GPU no TensorFlow.
- Treine uma rede neural em multi-GPU (notebook) (código). Uma implementação clara e simples do TensorFlow para treinar uma rede neural convolucional em várias GPUs.
Mais exemplos
Os exemplos a seguir vêm da TFLearn, uma biblioteca que fornece uma interface simplificada para o TensorFlow. Você pode dar uma olhada, há muitos exemplos e operações e camadas pré-construídas.
Tutoriais
- Início rápido do TFLearn. Aprenda os fundamentos do TFLearn por meio de uma tarefa concreta de aprendizado de máquina. Construa e treine um classificador de rede neural profunda.
Exemplos
- Exemplos de TFLearn. Uma grande coleção de exemplos usando TFLearn.