2. Sandro Moreira
- Professor em cursos de Graduação e Pós Graduação da
Universidade de Rio Verde (UniRV)
- Mestre em Engenharia Mecânica (UNESP)
- Doutorando em Ciência da Computação (UFG)
- Consultor de Projetos para Machine Learning
- Coorganizador da comunidade GDG Rio Verde
- Coorganizador da comunidade TensorFlow Goiás
3. O que é TensorFlow?
Plataforma de código aberto de ponta a ponta para aprendizado de máquina.
Possui um ecossistema abrangente e flexível de ferramentas, bibliotecas e
recursos da comunidade que permite que os pesquisadores desenvolvam o
que há de mais moderno em ML e os desenvolvedores construam e
implantem facilmente aplicativos desenvolvidos por ML.
4. Linguagens de Programação
Oficiais:
Python
JavaScript
C++
Java
Go
Swift (Release em Breve)
Mantidos por comunidades
C#: TensorFlowSharp e TensorFlow.NET
Haskell
Julia
MATLAB
Ruby
Rust
Scala
O TensorFlow possui APIs disponíveis em várias linguagens, tanto para
a construção quanto para a execução de um gráfico do TensorFlow.
5. a = tf.constant(5)
b = tf.constant(3)
c = a * b
print(c)
a = tf.constant(5)
b = tf.constant(3)
c = a * b
with tf.Session() as sess:
print(sess.run(c))
Simbólico Concreto
TF1 TF2
Funções, não sessões
9. Desenvolvimento Produção
Data Design
tf.data
TF Datasets
Model Design
Keras
Estimators
Training
Distribution Strategy
CPU GPU TPU
Analisys
TensorBoard
Serialization
Saved Model
Model Repository
TensorFlow HUB
Browser e Node
TensorFlow.JS
Android, IOS, Arduino, etc
TensorFlow Lite e Micro
Cloud
TensorFlow Services
10. Construindo um modelo com TensorFlow
Sequencial API
+ Built-in Layers
Functional API
+ Built-in Layers
Functional API
+Custom Layers
+Custom Metrics
+Custom Losses
Subclassing: write
everything yourself
from scratch
Novos usuários,
modelos simples
Engenheiros
com demandas
padrões
Engenheiros que
querem maior
controle em casos
muito específicos
Pesquisadores
11. Construindo um modelo com TensorFlow
Sequencial API
+ Built-in Layers
Functional API
+ Built-in Layers
Functional API
+Custom Layers
+Custom Metrics
+Custom Losses
Subclassing: write
everything yourself
from scratch
Novos usuários,
modelos simples
Engenheiros
com demandas
padrões
Engenheiros que
querem maior
controle em casos
muito específicos
Pesquisadores
13. Construindo um modelo com TensorFlow
Sequencial API
+ Built-in Layers
Functional API
+ Built-in Layers
Functional API
+Custom Layers
+Custom Metrics
+Custom Losses
Subclassing: write
everything yourself
from scratch
Novos usuários,
modelos simples
Engenheiros
com demandas
padrões
Engenheiros que
querem maior
controle em casos
muito específicos
Pesquisadores
14. Exemplo de Caso de uso mais específico
Visual Question Answering (VQA)
Tarefa: Dada uma imagem e uma pergunta em linguagem natural, a resposta deve vir em linguagem natural
Antol, S. et all; VQA: Visual Question Answering; The IEEE International Conference on Computer Vision (ICCV), 2015
Pergunta: Qual a cor do cachorro da direita?
Resposta: Preto
15. Antol, S. et all; VQA: Visual Question Answering; The IEEE International Conference on Computer Vision (ICCV), 2015
1 - Usar uma CNN para a imagem
2 - Usar uma LSTM para a pergunta
3 - Concatenar
4 - Classificar com Dense layers
Workflow
Input Question
(Vectorized, Padded)
Input Image
(Normalized)
Embedding
LSTM
Conv2D and
Maxpooling2D stack
Concatenate
Dense/Softmax
19. #Classificador
output = Dense(1000,
activation=‘softmax’)(merged)
#Construção do Modelo que você pode treinar
#com .fit, .train_on_batch ou GradientTape
vqa_model = Model(inputs=[image_input,
question_input],
outputs=output)
#visualizando modelo
from tensorflow.keras.utils import plot_model
plot_model(vqa_model, to_file=‘modelo.png’)
Input Question
(Vectorized, Padded)
Input Image
(Normalized)
Embedding
LSTM
Conv2D and
Maxpooling2D stack
Concatenate
Dense/Softmax
20. Construindo um modelo com TensorFlow
Sequencial API
+ Built-in Layers
Functional API
+ Built-in Layers
Functional API
+Custom Layers
+Custom Metrics
+Custom Losses
Subclassing: write
everything yourself
from scratch
Novos usuários,
modelos simples
Engenheiros
com demandas
padrões
Engenheiros que
querem maior
controle em casos
muito específicos
Pesquisadores
22. Treinando um modelo com TensorFlow
model.fit()
model.train_on_batch()
+ callbacks
Custom training
with GradientTape
Experimento
Rápido
Customizado
com checkpoints,
Monitoramento
com TensorBoard,
Enviar mensagens
via Slack
Customizado
com otimizadores e
funções de perda
específicos
Ex: GAN
Controle Total
Ex: Novos
algoritmos
de otimização
model.fit()
+ callbacks
23. Treinando um modelo com TensorFlow
model.fit()
model.train_on_batch()
+ callbacks
Custom training
with GradientTape
Experimento
Rápido
Customizado
com checkpoints,
Monitoramento
com TensorBoard,
Enviar mensagens
via Slack
Customizado
com otimizadores e
funções de perda
específicos
Ex: GAN
Controle Total
Ex: Novos
algoritmos
de otimização
model.fit()
+ callbacks
31. Referências
- Introduction to TensorFlow 2.0: Easier for beginners, and more powerful for experts
(TF World ’19) - Josh Gordon
- Tensorflow Documentation - https://tensorflow.org
- Google Colaboratory - https://colab.research.google.com/