SlideShare uma empresa Scribd logo
Começando com TensorFlow
Escreva seus próprios modelos de Machine Learning
!1
Sandro Moreira

moreira.sandro@gmail.com
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
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.
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.
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
x = tf.constant([[5, 2],[1, 3]])
print(x)
tf.Tensor(
[[5 2]
[1 3]], shape=(2,2), dtype=int32)
Constants
x.numpy()
array([[5, 2]
[1, 3]], dtype=int32)
Tensores para NumPy
a = tf.random.normal(shape=(2,2))
b = tf.random.normal(shape=(2,2))
c = a + b
d = tf.square©
array([[5, 2]
[1, 3]], dtype=int32)
Matemática no TF2 funciona como NumPy
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
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
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
model = keras.Sequential()
model.add(layers.Dense(32, activation=‘relu’, input_shape=(784,)))
model.add(layers.Dense(32, activation=‘relu’))
model.add(layers.Dense(10, activation=‘softmax’))
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
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
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
vision_model = Sequential()
vision_model.add(Conv2D(64,(3,3),
activation = ‘relu’,
input_shape=(224, 224,3)))
vision_model.add(MaxPooling2D())
vision_model.add(Flatten())
image_input = Input(shape=(224,224,3))
encode_image = vision_model(image_input)
Input Question

(Vectorized, Padded)
Input Image

(Normalized)
Embedding
LSTM
Conv2D and

Maxpooling2D stack

Concatenate
Dense/Softmax
question_input = Input(shape=(100,),
dtype=‘int32’,
name=“Question”)
embedded = Embedding(input_dim=10000,
output_dim=256,
input_length=100)(question_input)
encoded_question = LSTM(256)(embedded)
Input Question

(Vectorized, Padded)
Input Image

(Normalized)
Embedding
LSTM
Conv2D and

Maxpooling2D stack

Concatenate
Dense/Softmax
merged = layers.concatenate([encoded_image,
encoded_question])
Input Question

(Vectorized, Padded)
Input Image

(Normalized)
Embedding
LSTM
Conv2D and

Maxpooling2D stack

Concatenate
Dense/Softmax
#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
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
class MyModel(tf.keras.Model):
def "__init"__(self, num_classes=10):
super(MyModel, self)."__init"__(name=‘my_model’)
self.dense_1 = layers.Dense(32, activation=‘relu’)
self.dense_2 = layers.Dense(num_classes,activation=‘softmax’)
def call(self, inputs):
x = self.dense_1(inputs)
return self.dense_2(x)
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
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
model.compile(optimizer=Adam(),
loss=BinaryCrossentropy(),
metrics=[AUC(), Precision(), Recall()])
model.fit(data,
epochs=10,
validation_data=val_data,
callbacks=[EarlyStopping(),
TensorBoard(),
ModelCheckpoint()])
Usando Notebooks Colab e TensorFlow 2.x
bit.ly/2IFyV23Notebook disponível em:
Recursos - Libraries & Extensions
Recursos - Libraries & Extensions
Dica #1
teachablemachine.withgoogle.com
Dica #2
https://codelabs.developers.google.com/?cat=TensorFlow
Dica #3
https://www.tensorflow.org/tutorials
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/

Mais conteúdo relacionado

PDF
Introdução a Machine Learning e TensorFlow
PPT
Introdução ao Deep Learning com o TensorFlow
PPT
Introdução ao Deep Learning com o TensorFlow
PDF
Introdução a Machine Learning e TensorFlow
PDF
Hands On TensorFlow and Keras
PPTX
Dismistificando deep learning v2.1
PDF
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
PDF
Python ES 2017 - Introdução ao Tensorflow
Introdução a Machine Learning e TensorFlow
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
Introdução a Machine Learning e TensorFlow
Hands On TensorFlow and Keras
Dismistificando deep learning v2.1
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
Python ES 2017 - Introdução ao Tensorflow

Semelhante a Comecando tensorflow (20)

PPTX
Dismistificando deep learning
PPTX
Dismistificando deep learning
PDF
Deep Learning do Zero ao Impossível: Qual o caminho?
PDF
Devfest cerrado2017
PPTX
Facebook Developer Circles SP - Redes neurais convolucionais com PyTorch
PPTX
Tensorflow
PDF
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
PDF
Introdução a Deep Learning
PPTX
Transfer learning e tensorflow hub
PDF
(curso) "Machine Learning Study Jam" em Brasília
PPTX
Novidades do Google I/O 2024: Avanços em IA com Keras e Tensorflow
PDF
Internet das Coisas com Android things e Machine Learning
PDF
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
PDF
TinyML - IoT e Machine Learning
ODP
PDF
Introdução ao Machine Learning para Hackers
PDF
Inteligencia artificial 10
PDF
Deep Learning
PPTX
Novidades do Google I/O 2024: Avanços em IA com Keras e Tensorflow
PDF
Devcamp 2015
Dismistificando deep learning
Dismistificando deep learning
Deep Learning do Zero ao Impossível: Qual o caminho?
Devfest cerrado2017
Facebook Developer Circles SP - Redes neurais convolucionais com PyTorch
Tensorflow
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
Introdução a Deep Learning
Transfer learning e tensorflow hub
(curso) "Machine Learning Study Jam" em Brasília
Novidades do Google I/O 2024: Avanços em IA com Keras e Tensorflow
Internet das Coisas com Android things e Machine Learning
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
TinyML - IoT e Machine Learning
Introdução ao Machine Learning para Hackers
Inteligencia artificial 10
Deep Learning
Novidades do Google I/O 2024: Avanços em IA com Keras e Tensorflow
Devcamp 2015
Anúncio

Mais de Sandro Moreira (6)

PDF
[BuildWithAI] Introduction to Gemini.pdf
PDF
Introdução a Machine Learning
PDF
Como o Google está Democratizando a Inteligência Artificial?
PDF
Classificando Imagens com Redes Neurais Convolucionais
PDF
Deep Learning e o Futuro da Inteligência Artificial
PDF
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
[BuildWithAI] Introduction to Gemini.pdf
Introdução a Machine Learning
Como o Google está Democratizando a Inteligência Artificial?
Classificando Imagens com Redes Neurais Convolucionais
Deep Learning e o Futuro da Inteligência Artificial
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Anúncio

Último (19)

PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
COBITxITIL-Entenda as diferença em uso governança TI
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Apple Pippin Uma breve introdução. - David Glotz
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Aula 18 - Manipulacao De Arquivos python
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula04-Academia Heri- Tecnologia Geral 2025

Comecando tensorflow

  • 1. Começando com TensorFlow Escreva seus próprios modelos de Machine Learning !1 Sandro Moreira moreira.sandro@gmail.com
  • 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
  • 6. x = tf.constant([[5, 2],[1, 3]]) print(x) tf.Tensor( [[5 2] [1 3]], shape=(2,2), dtype=int32) Constants
  • 7. x.numpy() array([[5, 2] [1, 3]], dtype=int32) Tensores para NumPy
  • 8. a = tf.random.normal(shape=(2,2)) b = tf.random.normal(shape=(2,2)) c = a + b d = tf.square© array([[5, 2] [1, 3]], dtype=int32) Matemática no TF2 funciona como NumPy
  • 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
  • 12. model = keras.Sequential() model.add(layers.Dense(32, activation=‘relu’, input_shape=(784,))) model.add(layers.Dense(32, activation=‘relu’)) model.add(layers.Dense(10, activation=‘softmax’))
  • 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
  • 16. vision_model = Sequential() vision_model.add(Conv2D(64,(3,3), activation = ‘relu’, input_shape=(224, 224,3))) vision_model.add(MaxPooling2D()) vision_model.add(Flatten()) image_input = Input(shape=(224,224,3)) encode_image = vision_model(image_input) Input Question (Vectorized, Padded) Input Image (Normalized) Embedding LSTM Conv2D and Maxpooling2D stack Concatenate Dense/Softmax
  • 17. question_input = Input(shape=(100,), dtype=‘int32’, name=“Question”) embedded = Embedding(input_dim=10000, output_dim=256, input_length=100)(question_input) encoded_question = LSTM(256)(embedded) Input Question (Vectorized, Padded) Input Image (Normalized) Embedding LSTM Conv2D and Maxpooling2D stack Concatenate Dense/Softmax
  • 18. merged = layers.concatenate([encoded_image, encoded_question]) 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
  • 21. class MyModel(tf.keras.Model): def "__init"__(self, num_classes=10): super(MyModel, self)."__init"__(name=‘my_model’) self.dense_1 = layers.Dense(32, activation=‘relu’) self.dense_2 = layers.Dense(num_classes,activation=‘softmax’) def call(self, inputs): x = self.dense_1(inputs) return self.dense_2(x)
  • 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
  • 25. Usando Notebooks Colab e TensorFlow 2.x bit.ly/2IFyV23Notebook disponível em:
  • 26. Recursos - Libraries & Extensions
  • 27. Recursos - Libraries & Extensions
  • 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/