SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Sandro Silva Moreira
AI Engineer at DeepCardio Project
UniRV - Universidade de Rio Verde
moreira.sandro@gmail.com
Hands on - Deep Learning with
Google TensorFlow
and Keras
Hands on - Deep Learning with
Google TensorFlow
and Keras
https://www.tensorflow.org
• Biblioteca de código aberto para aprendizado de
máquina
• Segunda geração do sistema projetado pelo Google
Brain. A versão 1.0.0 foi lançada em fev/2015,
atualmente a versão mais recente é a 1.5
• Embora a implementação de referência seja
executada em dispositivos individuais, pode
também ser executado em múltiplas CPUs e GPUs
(com extensões opcionais CUDA para GPGPU).
TensorFlow
TensorFlow
• Fornece uma API em Python, C++, Haskell, Java, Go,
e Rust
• Cálculos no TensorFlow são expressos como grafos de
fluxo de dados mantendo um estado.
• O nome TensorFlow deriva das operações que tais
redes neurais realizam em arranjos de dados
multidimensionais.
• Estimators, which represent a complete model. The Estimator API provides methods to train
the model, to judge the model's accuracy, and to generate predictions.
• Datasets, which build a data input pipeline. The Dataset API has methods to load and
manipulate data, and feed it into your model. The Datasets API meshes well with the Estimators
API.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import tensorflow as tf
#Criamos constantes
x_1 = tf.constant(2.0,dtype=tf.float32)
#A função tf.constant cria nossas constantes
x_2 = tf.constant(5.0,dtype=tf.float32)
#Aqui multiplicamos os dois resultados
mult = x_1*x_2
#Aqui somamos as duas constantes
soma = x_1+x_2
sess = tf.Session()
# Toda vez que quisermos executar usamos o método
run,Aqui executamos a multiplicação
print(sess.run(mult))
#Aqui executamos a soma
print(sess.run(soma))
Uso Básico
Começando com TensorFlow
• Em TensorFlow, a computação é descrita usando
gráficos de fluxo de dados.
• Cada nó do gráfico representa uma instância de
uma operação matemática (como adição, divisão
ou multiplicação) e cada borda é um conjunto de
dados multidimensionais (tensor) no qual as
operações são realizadas.
Função Linear Simples
#Python Simples
x = -2.0
y = 5*x + 13
print(y)
Função Linear Simples
import tensorflow as tf
x = tf.constant(-2.0, name="x", dtype=tf.float32)
a = tf.constant(5.0, name="a", dtype=tf.float32)
b = tf.constant(13.0, name="b", dtype=tf.float32)
y = tf.Variable(tf.add(tf.multiply(a, x), b))
init = tf.global_variables_initializer()
with tf.Session() as session:
session.run(init)
print session.run(y)
Exemplo 2
import tensorflow as tf
x = tf.placeholder(tf.float32, name="x")
y = tf.placeholder(tf.float32, name="y")
z = tf.multiply(x, y, name="z")
with tf.Session() as session:
print session.run(z, feed_dict={x: 2.1, y: 3.0})
Visualizando grafos com TensorBoard
• TensorBoard é uma ferramenta de visualização para análise de
gráficos de fluxo de dados. Isso pode ser útil para obter uma
melhor compreensão dos modelos de aprendizagem de
máquinas.
• Com o TensorBoard, você pode obter informações sobre
diferentes tipos de estatísticas sobre os parâmetros e detalhes
sobre as partes do gráfico computacional em geral. Não é
incomum que uma rede neural profunda tenha um grande
número de nós. O TensorBoard permite aos desenvolvedores
obter informações sobre cada nó e como a computação é
executada durante o tempo de execução TensorFlow.
Visualizando grafos com TensorBoard
import tensorflow as tf
x = tf.constant(-2.0, name="x", dtype=tf.float32)
a = tf.constant(5.0, name="a", dtype=tf.float32)
b = tf.constant(13.0, name="b", dtype=tf.float32)
y = tf.Variable(tf.add(tf.multiply(a, x), b))
init = tf.global_variables_initializer()
with tf.Session() as session:
merged = tf.summary.merge_all()
writer = tf.summary.FileWriter("logs", session.graph)
session.run(init)
print session.run(y)
TensorBoard
tensorboard --logdir logs/
Demo - Notebook (classificador_tensorflow)
Arquiteturas de DeepLearning com TF
Muitas outras arquiteturas
Arquiteturas Deep Learning com TF
https://keras.io/layers/core/
Keras
• Biblioteca para rede neural de alto-nível escrita em
Python e roda como frontend em TensorFlow ou
Theano.
• Foi desenvolvida para facilitar experimentações
rápidas, isto é, sem que você tenha que dominar
cada um dos backgrounds, de maneira rápida e
eficiente.
Keras
• Prototipagem rápida e fácil (total modularidade,
minimalismo e extensibilidade)
• Suporte a redes convolucionais e recorrentes,
incluindo combinação de ambas
• Suporte a esquemas de conectividade arbitrária
(incluindo treino de N para N)
• Roda na CPU ou GPU
Keras - Exemplo
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
data = np.random.random((1000,100))
labels = np.random.randint(2,size=(1000,1))
model = Sequential()
model.add(Dense(32,
activation='relu',
input_dim=100))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(data,labels,epochs=10,batch_size=32)
predictions = model.predict(data)
Keras - Exemplo
from keras.layers import Dense
model.add(Dense(12,
input_dim=8,
kernel_initializer='uniform',
activation='relu'))
model.add(Dense(8,
kernel_initializer=‘uniform',
activation=‘relu’))
model.add(Dense(1,kernel_initializer='uniform',activation='sigmoid'))
Demonstração - neuralnetworkKeras
• Multilayer Perceptron em Keras
• Dataset: Pima Indians onset of diabetes - This is a standard
machine learning dataset from the UCI Machine Learning repository. It describes patient medical record
data for Pima Indians and whether they had an onset of diabetes within five years.
	 1.	 Load Data.
	 2.	 Define Model.
	 3.	 Compile Model.
	 4.	 Fit Model.
	 5.	 Evaluate Model.
Keras - Rede Convolucional
from keras.layers import Activation,Conv2D,MaxPooling2D,Flatten
model2.add(Conv2D(32,(3,3),padding='same',input_shape=x_train.shape[1:]))
model2.add(Activation('relu'))
model2.add(Conv2D(32,(3,3)))
model2.add(Activation('relu'))
model2.add(MaxPooling2D(pool_size=(2,2)))
model2.add(Dropout(0.25))
model2.add(Conv2D(64,(3,3), padding='same'))
model2.add(Activation('relu'))
model2.add(Conv2D(64,(3, 3)))
model2.add(Activation('relu'))
model2.add(MaxPooling2D(pool_size=(2,2)))
model2.add(Dropout(0.25))
model2.add(Flatten())
model2.add(Dense(512))
model2.add(Activation('relu'))
model2.add(Dropout(0.5))
model2.add(Dense(num_classes))
model2.add(Activation('softmax'))
Keras - Treinando a Rede
model.fit(
x_train,
y_train,
batch_size=32,
epochs=15,
verbose=1,
validation_data=(x_test,y_test)
)
Exemplo Prático - TF
Rede Convolucional Inception pré-treinada será retreinada
para reconhecer personagens de “Os Simpsons”
Dicas
• TensorFlow Dev Summit 2018 - March 30, 2018 at
the Computer History Museum in Mountain View,
CA.

Mais conteúdo relacionado

Mais procurados

Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programaçãoGustavo Nazário
 
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Tutorial aed iii   008 - algoritmo de ordenação heapsortTutorial aed iii   008 - algoritmo de ordenação heapsort
Tutorial aed iii 008 - algoritmo de ordenação heapsortFlávio Freitas
 
Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013Intel Software Brasil
 
A Linguagem Lua - Uma abordagem inicial
A Linguagem Lua - Uma abordagem inicialA Linguagem Lua - Uma abordagem inicial
A Linguagem Lua - Uma abordagem inicialFlávio Schuindt
 
Prova 2012 2_p4_gabarito
Prova 2012 2_p4_gabaritoProva 2012 2_p4_gabarito
Prova 2012 2_p4_gabaritoAmélia Moreira
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogoselliando dias
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem luaRafael Sanches
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Rodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutRodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutIvanilton Polato
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonrodrigopex
 
Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Ensdo
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 

Mais procurados (20)

Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
 
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Tutorial aed iii   008 - algoritmo de ordenação heapsortTutorial aed iii   008 - algoritmo de ordenação heapsort
Tutorial aed iii 008 - algoritmo de ordenação heapsort
 
Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013
 
A Linguagem Lua - Uma abordagem inicial
A Linguagem Lua - Uma abordagem inicialA Linguagem Lua - Uma abordagem inicial
A Linguagem Lua - Uma abordagem inicial
 
Prova 2012 2_p4_gabarito
Prova 2012 2_p4_gabaritoProva 2012 2_p4_gabarito
Prova 2012 2_p4_gabarito
 
Linguagem lua
Linguagem luaLinguagem lua
Linguagem lua
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogos
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Apresentação Lua
Apresentação LuaApresentação Lua
Apresentação Lua
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Rodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutRodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando Mahout
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 

Semelhante a Deep Learning com TensorFlow e Keras

Python ES 2017 - Introdução ao Tensorflow
Python ES 2017 - Introdução ao TensorflowPython ES 2017 - Introdução ao Tensorflow
Python ES 2017 - Introdução ao TensorflowFabrício Vargas Matos
 
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
 
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
 
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
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
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
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com pythonUFPA
 
Python e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestPython e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestEdson Celio
 
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
 
Transfer learning e tensorflow hub
Transfer learning e tensorflow hubTransfer learning e tensorflow hub
Transfer learning e tensorflow hubLucas Oliveira
 
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
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 

Semelhante a Deep Learning com TensorFlow e Keras (20)

Python ES 2017 - Introdução ao Tensorflow
Python ES 2017 - Introdução ao TensorflowPython ES 2017 - Introdução ao Tensorflow
Python ES 2017 - Introdução ao Tensorflow
 
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
 
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!
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
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
 
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!
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
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)
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com python
 
Python e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestPython e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentest
 
Aula python
Aula pythonAula python
Aula python
 
Comecando tensorflow
Comecando tensorflowComecando tensorflow
Comecando tensorflow
 
Devfest cerrado2017
Devfest cerrado2017Devfest cerrado2017
Devfest cerrado2017
 
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
 
Workshop Python
Workshop PythonWorkshop Python
Workshop Python
 
Transfer learning e tensorflow hub
Transfer learning e tensorflow hubTransfer learning e tensorflow hub
Transfer learning e tensorflow hub
 
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
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 

Mais de Sandro Moreira

Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine LearningSandro Moreira
 
Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?Sandro Moreira
 
Deep Learning do Zero ao Impossível: Qual o caminho?
Deep Learning do Zero ao Impossível: Qual o caminho?Deep Learning do Zero ao Impossível: Qual o caminho?
Deep Learning do Zero ao Impossível: Qual o caminho?Sandro Moreira
 
Classificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais ConvolucionaisClassificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais ConvolucionaisSandro Moreira
 
Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialSandro Moreira
 
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleVendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleSandro Moreira
 

Mais de Sandro Moreira (6)

Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine Learning
 
Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?
 
Deep Learning do Zero ao Impossível: Qual o caminho?
Deep Learning do Zero ao Impossível: Qual o caminho?Deep Learning do Zero ao Impossível: Qual o caminho?
Deep Learning do Zero ao Impossível: Qual o caminho?
 
Classificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais ConvolucionaisClassificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais Convolucionais
 
Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência Artificial
 
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleVendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
 

Deep Learning com TensorFlow e Keras

  • 1. Sandro Silva Moreira AI Engineer at DeepCardio Project UniRV - Universidade de Rio Verde moreira.sandro@gmail.com Hands on - Deep Learning with Google TensorFlow and Keras Hands on - Deep Learning with Google TensorFlow and Keras
  • 3. • Biblioteca de código aberto para aprendizado de máquina • Segunda geração do sistema projetado pelo Google Brain. A versão 1.0.0 foi lançada em fev/2015, atualmente a versão mais recente é a 1.5 • Embora a implementação de referência seja executada em dispositivos individuais, pode também ser executado em múltiplas CPUs e GPUs (com extensões opcionais CUDA para GPGPU). TensorFlow
  • 4. TensorFlow • Fornece uma API em Python, C++, Haskell, Java, Go, e Rust • Cálculos no TensorFlow são expressos como grafos de fluxo de dados mantendo um estado. • O nome TensorFlow deriva das operações que tais redes neurais realizam em arranjos de dados multidimensionais.
  • 5.
  • 6. • Estimators, which represent a complete model. The Estimator API provides methods to train the model, to judge the model's accuracy, and to generate predictions. • Datasets, which build a data input pipeline. The Dataset API has methods to load and manipulate data, and feed it into your model. The Datasets API meshes well with the Estimators API.
  • 7. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import tensorflow as tf #Criamos constantes x_1 = tf.constant(2.0,dtype=tf.float32) #A função tf.constant cria nossas constantes x_2 = tf.constant(5.0,dtype=tf.float32) #Aqui multiplicamos os dois resultados mult = x_1*x_2 #Aqui somamos as duas constantes soma = x_1+x_2 sess = tf.Session() # Toda vez que quisermos executar usamos o método run,Aqui executamos a multiplicação print(sess.run(mult)) #Aqui executamos a soma print(sess.run(soma)) Uso Básico
  • 8. Começando com TensorFlow • Em TensorFlow, a computação é descrita usando gráficos de fluxo de dados. • Cada nó do gráfico representa uma instância de uma operação matemática (como adição, divisão ou multiplicação) e cada borda é um conjunto de dados multidimensionais (tensor) no qual as operações são realizadas.
  • 9. Função Linear Simples #Python Simples x = -2.0 y = 5*x + 13 print(y)
  • 10. Função Linear Simples import tensorflow as tf x = tf.constant(-2.0, name="x", dtype=tf.float32) a = tf.constant(5.0, name="a", dtype=tf.float32) b = tf.constant(13.0, name="b", dtype=tf.float32) y = tf.Variable(tf.add(tf.multiply(a, x), b)) init = tf.global_variables_initializer() with tf.Session() as session: session.run(init) print session.run(y)
  • 11. Exemplo 2 import tensorflow as tf x = tf.placeholder(tf.float32, name="x") y = tf.placeholder(tf.float32, name="y") z = tf.multiply(x, y, name="z") with tf.Session() as session: print session.run(z, feed_dict={x: 2.1, y: 3.0})
  • 12. Visualizando grafos com TensorBoard • TensorBoard é uma ferramenta de visualização para análise de gráficos de fluxo de dados. Isso pode ser útil para obter uma melhor compreensão dos modelos de aprendizagem de máquinas. • Com o TensorBoard, você pode obter informações sobre diferentes tipos de estatísticas sobre os parâmetros e detalhes sobre as partes do gráfico computacional em geral. Não é incomum que uma rede neural profunda tenha um grande número de nós. O TensorBoard permite aos desenvolvedores obter informações sobre cada nó e como a computação é executada durante o tempo de execução TensorFlow.
  • 13. Visualizando grafos com TensorBoard import tensorflow as tf x = tf.constant(-2.0, name="x", dtype=tf.float32) a = tf.constant(5.0, name="a", dtype=tf.float32) b = tf.constant(13.0, name="b", dtype=tf.float32) y = tf.Variable(tf.add(tf.multiply(a, x), b)) init = tf.global_variables_initializer() with tf.Session() as session: merged = tf.summary.merge_all() writer = tf.summary.FileWriter("logs", session.graph) session.run(init) print session.run(y)
  • 15. Demo - Notebook (classificador_tensorflow)
  • 20. Keras • Biblioteca para rede neural de alto-nível escrita em Python e roda como frontend em TensorFlow ou Theano. • Foi desenvolvida para facilitar experimentações rápidas, isto é, sem que você tenha que dominar cada um dos backgrounds, de maneira rápida e eficiente.
  • 21. Keras • Prototipagem rápida e fácil (total modularidade, minimalismo e extensibilidade) • Suporte a redes convolucionais e recorrentes, incluindo combinação de ambas • Suporte a esquemas de conectividade arbitrária (incluindo treino de N para N) • Roda na CPU ou GPU
  • 22. Keras - Exemplo import numpy as np from keras.models import Sequential from keras.layers import Dense data = np.random.random((1000,100)) labels = np.random.randint(2,size=(1000,1)) model = Sequential() model.add(Dense(32, activation='relu', input_dim=100)) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy']) model.fit(data,labels,epochs=10,batch_size=32) predictions = model.predict(data)
  • 23. Keras - Exemplo from keras.layers import Dense model.add(Dense(12, input_dim=8, kernel_initializer='uniform', activation='relu')) model.add(Dense(8, kernel_initializer=‘uniform', activation=‘relu’)) model.add(Dense(1,kernel_initializer='uniform',activation='sigmoid'))
  • 24. Demonstração - neuralnetworkKeras • Multilayer Perceptron em Keras • Dataset: Pima Indians onset of diabetes - This is a standard machine learning dataset from the UCI Machine Learning repository. It describes patient medical record data for Pima Indians and whether they had an onset of diabetes within five years. 1. Load Data. 2. Define Model. 3. Compile Model. 4. Fit Model. 5. Evaluate Model.
  • 25. Keras - Rede Convolucional from keras.layers import Activation,Conv2D,MaxPooling2D,Flatten model2.add(Conv2D(32,(3,3),padding='same',input_shape=x_train.shape[1:])) model2.add(Activation('relu')) model2.add(Conv2D(32,(3,3))) model2.add(Activation('relu')) model2.add(MaxPooling2D(pool_size=(2,2))) model2.add(Dropout(0.25)) model2.add(Conv2D(64,(3,3), padding='same')) model2.add(Activation('relu')) model2.add(Conv2D(64,(3, 3))) model2.add(Activation('relu')) model2.add(MaxPooling2D(pool_size=(2,2))) model2.add(Dropout(0.25)) model2.add(Flatten()) model2.add(Dense(512)) model2.add(Activation('relu')) model2.add(Dropout(0.5)) model2.add(Dense(num_classes)) model2.add(Activation('softmax'))
  • 26. Keras - Treinando a Rede model.fit( x_train, y_train, batch_size=32, epochs=15, verbose=1, validation_data=(x_test,y_test) )
  • 27. Exemplo Prático - TF Rede Convolucional Inception pré-treinada será retreinada para reconhecer personagens de “Os Simpsons”
  • 28. Dicas • TensorFlow Dev Summit 2018 - March 30, 2018 at the Computer History Museum in Mountain View, CA.