SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Introdução a
Machine Learning com
Google Tensorflow
Fabricio Vargas Matos
Fabrício Matos
• /fabriciovargasmatos
Características
• Biblioteca open source
• Suporte a multi-CPU e multi-GPU
• Suporte a treino distribuído (cluster)
• Suporte a diversos dispositivos (ex: mobile)
• Linguagem preferencial: Python e C++
• Bibliotecas de operadores em diferentes níveis de
abstração
Estrutura do código
• Declaração do modelo (construção do grafo)
• Loop de treino
• Salvar/carregar modelo
• Usar modelo para inferir
Tensorflow graph
Conceitos Básicos
• Graph: abstração para pipeline de operações
sobre tensores (arrays multi-dimensionais)
• Edge: Tensores (arrays multi-dimensionais) de
saída/entrada - pipeline
• Node: Operações entre tensores
y = w.x + b
X	
W	
b	
*	
+	 y	
[32,128]	
[128,10]	
[32,10]	
[10]
Tensors: tf.constant()
#graph definition
a = tf.constant([[1,0],[0,1]], name="const_1")
…
#graph evaluation inside session
#constant are automatically initialized
a_val = sess.run(a)
#a_val is a numpy array with shape=(2,2)
Tensors: tf.variable()
#graph definition
a=tf.Variable([[1,0],[0,1]], trainable=False, name="var_1")
…
#graph evaluation inside session
#manual initialization
sess.run(tf.global_variables_initializer())
a_val = sess.run(a)
#a_val is a numpy array with shape=(2,2)
Tensors: tf.placeholder()
#graph definition
a = tf.placeholder(tf.int64, shape=(2,2),name="placeholder_1")
…
#graph evaluation inside session
#a takes the value passed by the feed_dict
a_val = sess.run(a, feed_dict={a:[[1,0],[0,1]]})
#a_val is a numpy array with shape=(2,2)
Device allocation: tf.device()
with tf.device("/cpu:0"):
a = tf.Variable(…) #a will be allocated on the cpu memory
with tf.device("/gpu:0"):
b = tf.Variable(…) #b will be allocated on the cuda device 0 (default)
with tf.device("/gpu:1"):
c = tf.Variable(…) #c will be allocated on the cuda device 1
Operações
• Operações com matrizes (matmul, etc.)
• Funções de ativação (relu, sigmoid, etc.)
• Algoritmos de otimização (GD, Adam, etc.)
• E muuuuuiiiiito mais…
Exemplo #1
Regressão Linear
Dataset
Criando nosso dataset fake
A função linear original
A função linear original
Construindo o modelo
(grafo)
Loss and optimizer
Loop de treino
Loop de treino
A função linear original
A função linear original
Exemplo #2
Deep Neural Network
(high-level API)
IRIS Dataset
Exemplo #3:
Layers
Conclusões
• Biblioteca de operações em diferentes níveis de
abstração
• Mais fácil de customizar que scikit-learn
• Ainda não possui tantos modelos “caixa-preta”
prontos (tf.contrib)
• Ambiente de execução versátil e escalável
• Integração com Google Cloud ML
Obrigado!
/fabriciovargasmatos

Contenu connexe

Tendances

Python Multimedia
Python MultimediaPython Multimedia
Python MultimediaiMasters
 
Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Ensdo
 
Jitter: Operacoes Com Matrizes
Jitter: Operacoes Com MatrizesJitter: Operacoes Com Matrizes
Jitter: Operacoes Com MatrizesJorge Cardoso
 
Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08thomasdacosta
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)Felipe Meganha
 
Inteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaInteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaGefferson Figueiredo Marcos
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04thomasdacosta
 
Apresentação pygame
Apresentação pygameApresentação pygame
Apresentação pygameDanilo Costa
 
Introdução ao Objective-C
Introdução ao Objective-CIntrodução ao Objective-C
Introdução ao Objective-CGustavo Barbosa
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowGuilherme Campos
 
Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Cesar Augusto
 

Tendances (13)

Python Multimedia
Python MultimediaPython Multimedia
Python Multimedia
 
Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1
 
Jitter: Operacoes Com Matrizes
Jitter: Operacoes Com MatrizesJitter: Operacoes Com Matrizes
Jitter: Operacoes Com Matrizes
 
programação c 5 aula
programação c 5 aulaprogramação c 5 aula
programação c 5 aula
 
Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)
 
Inteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaInteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de Máquina
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Apresentação pygame
Apresentação pygameApresentação pygame
Apresentação pygame
 
Introdução ao Objective-C
Introdução ao Objective-CIntrodução ao Objective-C
Introdução ao Objective-C
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)
 

Similaire à Python ES 2017 - Introdução ao Tensorflow

Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and KerasSandro Moreira
 
Mini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaMini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaDeivid Martins
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Luciano Palma
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphereEloi Júnior
 
Principais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralelaPrincipais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralelaIntel Software Brasil
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Intel Software Brasil
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowDevMT
 
pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLelliando dias
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Intel Software Brasil
 
Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?Embarcados
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Serverpichiliani
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Introdução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central DispatchIntrodução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central Dispatchflisolmaringa
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowpichiliani
 

Similaire à Python ES 2017 - Introdução ao Tensorflow (20)

Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and Keras
 
Mini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaMini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e Distribuída
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
 
Principais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralelaPrincipais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralela
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQL
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
 
Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Server
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Introdução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central DispatchIntrodução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central Dispatch
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 

Plus de Fabrício Vargas Matos

A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud”
A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud” A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud”
A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud” Fabrício Vargas Matos
 
iMasters Developer Week Vitória - Dev Front-end em Startups
iMasters Developer Week Vitória - Dev Front-end em Startups iMasters Developer Week Vitória - Dev Front-end em Startups
iMasters Developer Week Vitória - Dev Front-end em Startups Fabrício Vargas Matos
 
Meetup Bitcoin Vitoria #1 - Empreendedorismo em Bitcoin
Meetup Bitcoin Vitoria #1 - Empreendedorismo em BitcoinMeetup Bitcoin Vitoria #1 - Empreendedorismo em Bitcoin
Meetup Bitcoin Vitoria #1 - Empreendedorismo em BitcoinFabrício Vargas Matos
 
Meetup Bitcoin Vitoria 2 - Como a blockchain funciona
Meetup Bitcoin Vitoria 2 - Como a blockchain funcionaMeetup Bitcoin Vitoria 2 - Como a blockchain funciona
Meetup Bitcoin Vitoria 2 - Como a blockchain funcionaFabrício Vargas Matos
 
Google I/O Vitoria - Resumo da abertura
Google I/O Vitoria - Resumo da aberturaGoogle I/O Vitoria - Resumo da abertura
Google I/O Vitoria - Resumo da aberturaFabrício Vargas Matos
 
Google I/O Vitoria - Estudo de caso do App Fixity
Google I/O Vitoria - Estudo de caso do App FixityGoogle I/O Vitoria - Estudo de caso do App Fixity
Google I/O Vitoria - Estudo de caso do App FixityFabrício Vargas Matos
 
Google I/O Vitoria - Manipulando numeros de telefone
Google I/O Vitoria - Manipulando numeros de telefoneGoogle I/O Vitoria - Manipulando numeros de telefone
Google I/O Vitoria - Manipulando numeros de telefoneFabrício Vargas Matos
 

Plus de Fabrício Vargas Matos (10)

Workshop Bitcoin 101 - Links
Workshop Bitcoin 101 - LinksWorkshop Bitcoin 101 - Links
Workshop Bitcoin 101 - Links
 
A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud”
A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud” A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud”
A tecnologia blockchain (cryptoledger) e ecossistema disruptivo “pós-cloud”
 
iMasters Developer Week Vitória - Dev Front-end em Startups
iMasters Developer Week Vitória - Dev Front-end em Startups iMasters Developer Week Vitória - Dev Front-end em Startups
iMasters Developer Week Vitória - Dev Front-end em Startups
 
Meetup Bitcoin Vitoria #1 - Empreendedorismo em Bitcoin
Meetup Bitcoin Vitoria #1 - Empreendedorismo em BitcoinMeetup Bitcoin Vitoria #1 - Empreendedorismo em Bitcoin
Meetup Bitcoin Vitoria #1 - Empreendedorismo em Bitcoin
 
Meetup Bitcoin Vitoria 2 - Como a blockchain funciona
Meetup Bitcoin Vitoria 2 - Como a blockchain funcionaMeetup Bitcoin Vitoria 2 - Como a blockchain funciona
Meetup Bitcoin Vitoria 2 - Como a blockchain funciona
 
Google I/O Vitoria - Resumo da abertura
Google I/O Vitoria - Resumo da aberturaGoogle I/O Vitoria - Resumo da abertura
Google I/O Vitoria - Resumo da abertura
 
Google I/O Vitoria - Estudo de caso do App Fixity
Google I/O Vitoria - Estudo de caso do App FixityGoogle I/O Vitoria - Estudo de caso do App Fixity
Google I/O Vitoria - Estudo de caso do App Fixity
 
Google I/O Vitoria - Manipulando numeros de telefone
Google I/O Vitoria - Manipulando numeros de telefoneGoogle I/O Vitoria - Manipulando numeros de telefone
Google I/O Vitoria - Manipulando numeros de telefone
 
Tdd e zero defeito
Tdd e zero defeitoTdd e zero defeito
Tdd e zero defeito
 
Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 

Python ES 2017 - Introdução ao Tensorflow