Theano
Alto desempenho em Machine Learning
Felipe Martins
11 de Abril de 2015
Quem?
Universidade Federal do Ceará
- Bacharelado em Computação;
LSBD
- Líder técnico em projetos usando C e C++;
Quem?
Universidade Federal do Ceará
- Bacharelado em Computação;
LSBD
- Líder técnico em projetos usando C e C++;
Por aí.....
Roteiro
● Contexto;
● O que é a Theano;
● Exemplo;
Contexto
Python e Computação Científica
Contexto
Python e Computação Científica
Contexto
Mas Python não é uma
linguagem “lenta”!?!
Contexto
Depende :-)
Contexto
Depende :-)
Contexto
Depende :-)
PyCUDA
Contexto
Machine Learning
Contexto
Machine Learning
Contexto
Machine Learning
Não suporta execução
em GPUs :(
O que é Theano
Biblioteca de computação simbólica para Machine
Learning;
Otimiza expressões matemáticas e compila-as para ...
O que é Theano
Exemplo: multiplicar duas matrizes 1000 x 1000;
O que é Theano
Exemplo: multiplicar duas matrizes 1000 x 1000;
import theano
import theano.tensor as T
O que é Theano
Exemplo: multiplicar duas matrizes 1000 x 1000;
import theano
import theano.tensor as T
X = T.dmatrix('X')
...
O que é Theano
Exemplo: multiplicar duas matrizes 1000 x 1000;
import theano
import theano.tensor as T
X = T.dmatrix('X')
...
O que é Theano
Exemplo: multiplicar duas matrizes 1000 x 1000;
import theano
import theano.tensor as T
X = T.dmatrix('X')
...
O que é Theano
Exemplo: multiplicar duas matrizes 1000 x 1000;
import theano x = [[1, 2], [3, 4]]
import theano.tensor as ...
O que é Theano
Existem 3 maneiras de ajustar as configurações da Theano
(na seguinte ordem de precedência):
Módulo theano....
O que é Theano
theano.config
import theano
theano.config.floatx = ‘float32’
theano.config.device = ‘gpu0’
theano.config.nv...
O que é Theano
~/.theanorc
O que é Theano
THEANO_FLAGS
THEANO_FLAGS='floatX=float32,device=gpu0,nvcc.fastmath=True'
export THEANO_FLAGS
python <myscr...
O que é Theano
Gradientes...
O que é Theano
Gradientes…
x = T.dscalar(‘x’)
y = x ** 2
fy = theano.function([x], y)
O que é Theano
Gradientes…
x = T.dscalar(‘x’)
y = x ** 2
fy = theano.function([x], y)
Dy = T.grad(y, x)
O que é Theano
Gradientes…
x = T.dscalar(‘x’)
y = x ** 2
fy = theano.function([x], y)
Dy = T.grad(y, x)
Df = theano.functi...
Exemplo
Exemplo
Machine Learning em 5 minutos :)
Exemplo
Machine Learning em 5 minutos :)
Modelo: Representação dos dados reais;
Exemplo
Machine Learning em 5 minutos :)
Modelo: Representação dos dados reais;
Custo: O quanto o modelo se aproxima dos d...
Exemplo
Machine Learning em 5 minutos :)
Modelo: Representação dos dados reais;
Custo: O quanto o modelo se aproxima dos d...
Exemplo
Modelo
R$
m²
Exemplo
R$
m²
Modelo
Exemplo
Modelo
R$
m²
Exemplo
Custo
R$
m²
Exemplo
Custo
R$
m²
Exemplo
Custo
R$
m²
Média aritmética
dos erros
Exemplo
Custo
R$
m²
Média aritmética
dos erros
Exemplo
Treinamento
R$
m²
Exemplo
Treinamento
R$
m²
Exemplo
Treinamento
R$
m²
Exemplo
Treinamento
R$
m²
Exemplo
R$
m²
Treinamento
Exemplo
R$
m²
Treinamento
Como?!?
Exemplo
R$
m²
Treinamento
Como?!?
Exemplo
R$
m²
Treinamento
Como?!?
Modificando
parâmetros...
Exemplo
Treinamento
Exemplo
Treinamento
Exemplo
Treinamento
Custo
Exemplo
Treinamento
Custo
Exemplo
Treinamento
Custo
Exemplo
Treinamento
Custo
Exemplo
Treinamento
Custo
Exemplo
Treinamento
Custo
Exemplo
Treinamento
Custo
:(
Exemplo
De volta ao Python!
Exemplo
De volta ao Python!
alpha = T.dvector('a') a = 0.5
x = T.dvector('x') for i in
range(50):
t = T.dvector('t')
a = a...
Exemplo “real”
Rede neural para classificar dígitos manuscritos
Exemplo “real”
Rede neural para classificar dígitos manuscritos
Exemplo “real”
Rede neural para classificar dígitos manuscritos
Exemplo
Rede neural para classificar dígitos manuscritos
FIM!
Próximos SlideShares
Carregando em…5
×

Theano - Alto Desempenho em Machine Learning

467 visualizações

Publicada em

Slides da palestra sobre Theano apresentada no VIII Pylestras em Fortaleza no dia 11 de Abril de 2015.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
467
No SlideShare
0
A partir de incorporações
0
Número de incorporações
144
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Theano - Alto Desempenho em Machine Learning

  1. 1. Theano Alto desempenho em Machine Learning Felipe Martins 11 de Abril de 2015
  2. 2. Quem? Universidade Federal do Ceará - Bacharelado em Computação; LSBD - Líder técnico em projetos usando C e C++;
  3. 3. Quem? Universidade Federal do Ceará - Bacharelado em Computação; LSBD - Líder técnico em projetos usando C e C++; Por aí... @ffmmjj_martins https://github.com/ffmmjj
  4. 4. Roteiro ● Contexto; ● O que é a Theano; ● Exemplo;
  5. 5. Contexto Python e Computação Científica
  6. 6. Contexto Python e Computação Científica
  7. 7. Contexto Mas Python não é uma linguagem “lenta”!?!
  8. 8. Contexto Depende :-)
  9. 9. Contexto Depende :-)
  10. 10. Contexto Depende :-) PyCUDA
  11. 11. Contexto Machine Learning
  12. 12. Contexto Machine Learning
  13. 13. Contexto Machine Learning Não suporta execução em GPUs :(
  14. 14. O que é Theano Biblioteca de computação simbólica para Machine Learning; Otimiza expressões matemáticas e compila-as para código nativo; Permite execução em GPUs!
  15. 15. O que é Theano Exemplo: multiplicar duas matrizes 1000 x 1000;
  16. 16. O que é Theano Exemplo: multiplicar duas matrizes 1000 x 1000; import theano import theano.tensor as T
  17. 17. O que é Theano Exemplo: multiplicar duas matrizes 1000 x 1000; import theano import theano.tensor as T X = T.dmatrix('X') Y = T.dmatrix('Y')
  18. 18. O que é Theano Exemplo: multiplicar duas matrizes 1000 x 1000; import theano import theano.tensor as T X = T.dmatrix('X') Y = T.dmatrix('Y') Z = X*Y
  19. 19. O que é Theano Exemplo: multiplicar duas matrizes 1000 x 1000; import theano import theano.tensor as T X = T.dmatrix('X') Y = T.dmatrix('Y') Z = X*Y f = theano.function([X, Y], Z)
  20. 20. O que é Theano Exemplo: multiplicar duas matrizes 1000 x 1000; import theano x = [[1, 2], [3, 4]] import theano.tensor as T y = [[5, 6], [7, 8]] X = T.dmatrix('X') z = f(x, y) Y = T.dmatrix('Y') Z = X*Y f = theano.function([X, Y], Z)
  21. 21. O que é Theano Existem 3 maneiras de ajustar as configurações da Theano (na seguinte ordem de precedência): Módulo theano.config Arquivo .theanorc Variável de ambiente THEANO_FLAGS
  22. 22. O que é Theano theano.config import theano theano.config.floatx = ‘float32’ theano.config.device = ‘gpu0’ theano.config.nvcc.fastmath = ‘True’
  23. 23. O que é Theano ~/.theanorc
  24. 24. O que é Theano THEANO_FLAGS THEANO_FLAGS='floatX=float32,device=gpu0,nvcc.fastmath=True' export THEANO_FLAGS python <myscript>.py
  25. 25. O que é Theano Gradientes...
  26. 26. O que é Theano Gradientes… x = T.dscalar(‘x’) y = x ** 2 fy = theano.function([x], y)
  27. 27. O que é Theano Gradientes… x = T.dscalar(‘x’) y = x ** 2 fy = theano.function([x], y) Dy = T.grad(y, x)
  28. 28. O que é Theano Gradientes… x = T.dscalar(‘x’) y = x ** 2 fy = theano.function([x], y) Dy = T.grad(y, x) Df = theano.function([x], dy)
  29. 29. Exemplo
  30. 30. Exemplo Machine Learning em 5 minutos :)
  31. 31. Exemplo Machine Learning em 5 minutos :) Modelo: Representação dos dados reais;
  32. 32. Exemplo Machine Learning em 5 minutos :) Modelo: Representação dos dados reais; Custo: O quanto o modelo se aproxima dos dados reais;
  33. 33. Exemplo Machine Learning em 5 minutos :) Modelo: Representação dos dados reais; Custo: O quanto o modelo se aproxima dos dados reais; Treinamento: Como minimizar o custo;
  34. 34. Exemplo Modelo R$ m²
  35. 35. Exemplo R$ m² Modelo
  36. 36. Exemplo Modelo R$ m²
  37. 37. Exemplo Custo R$ m²
  38. 38. Exemplo Custo R$ m²
  39. 39. Exemplo Custo R$ m² Média aritmética dos erros
  40. 40. Exemplo Custo R$ m² Média aritmética dos erros
  41. 41. Exemplo Treinamento R$ m²
  42. 42. Exemplo Treinamento R$ m²
  43. 43. Exemplo Treinamento R$ m²
  44. 44. Exemplo Treinamento R$ m²
  45. 45. Exemplo R$ m² Treinamento
  46. 46. Exemplo R$ m² Treinamento Como?!?
  47. 47. Exemplo R$ m² Treinamento Como?!?
  48. 48. Exemplo R$ m² Treinamento Como?!? Modificando parâmetros...
  49. 49. Exemplo Treinamento
  50. 50. Exemplo Treinamento
  51. 51. Exemplo Treinamento Custo
  52. 52. Exemplo Treinamento Custo
  53. 53. Exemplo Treinamento Custo
  54. 54. Exemplo Treinamento Custo
  55. 55. Exemplo Treinamento Custo
  56. 56. Exemplo Treinamento Custo
  57. 57. Exemplo Treinamento Custo :(
  58. 58. Exemplo De volta ao Python!
  59. 59. Exemplo De volta ao Python! alpha = T.dvector('a') a = 0.5 x = T.dvector('x') for i in range(50): t = T.dvector('t') a = a - 0.0001 * Dj(a, X, T) y = x * alpha custo = T.sum((y - t)**2) custo_derivada = theano.grad(custo, alpha) J = theano.function([alpha, x, t], custo) / T.size(t)[0] Dj = theano.function([alpha, x, t], custo_derivada)
  60. 60. Exemplo “real” Rede neural para classificar dígitos manuscritos
  61. 61. Exemplo “real” Rede neural para classificar dígitos manuscritos
  62. 62. Exemplo “real” Rede neural para classificar dígitos manuscritos
  63. 63. Exemplo Rede neural para classificar dígitos manuscritos
  64. 64. FIM!

×