Skip to content

Commit

Permalink
Aula 19 - Redes Neurais Convolucionais com PyTorch (#34)
Browse files Browse the repository at this point in the history
* updated README and updated PyTorch vs TensorFlow

* Fixed references for Batch Size 32 Yan LeCun

* final draft - Aula 19 CNN com PyTorch
  • Loading branch information
storopoli committed Jun 14, 2022
1 parent b58626c commit 96abad1
Show file tree
Hide file tree
Showing 10 changed files with 1,005 additions and 6 deletions.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -59,6 +59,7 @@ Para configurar um ambiente local:
* **Aula 17** - Análise de Agrupamentos (Clusterização) com `Scikit-Learn` [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/storopoli/ciencia-de-dados/main?filepath=notebooks%2FAula_17_Clusterizacao.ipynb) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/storopoli/ciencia-de-dados/blob/main/notebooks/Aula_17_Clusterizacao.ipynb)
* **Aula 18a** - Redes Neurais com `TensorFlow` e `Keras` [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/storopoli/ciencia-de-dados/main?filepath=notebooks%2FAula_18_a_Redes_Neurais_com_TensorFlow.ipynb) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/storopoli/ciencia-de-dados/blob/main/notebooks/Aula_18_a_Redes_Neurais_com_TensorFlow.ipynb)
* **Aula 18b** - Redes Neurais com `PyTorch` [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/storopoli/ciencia-de-dados/main?filepath=notebooks%2FAula_18_b_Redes_Neurais_com_PyTorch.ipynb) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/storopoli/ciencia-de-dados/blob/main/notebooks/Aula_18_b_Redes_Neurais_com_PyTorch.ipynb)
* **Aula 19** - Redes Neurais Convolucionais com `PyTorch` [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/storopoli/ciencia-de-dados/main?filepath=notebooks%2FAula_19_Redes_Neurais_Convolucionais_com_PyTorch.ipynb) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/storopoli/ciencia-de-dados/blob/main/notebooks/Aula_19_Redes_Neurais_Convolucionais_com_PyTorch.ipynb)

## Cheat Sheets

Expand Down
9 changes: 6 additions & 3 deletions notebooks/Aula_18_a_Redes_Neurais_com_TensorFlow.ipynb
Expand Up @@ -508,10 +508,13 @@
"\n",
"Tamanho do Batch de dados que passa por vez pela rede neural antes da atualização dos parâmetros pelo *backpropagation*. Tamanhos grandes resultam em instabilidade no treinamento. Geralmente usam-se potências de $2$ $(2,4,8,16,\\dots, 2^n)$.\n",
"\n",
"Em Abril de 2018, Yann LeCun, um dos principais pesquisadores sobre redes neurais e ganhador do \"nobel\" da computação (Prêmio Turing) twittou em resposta à um artigo empírico que mostrava diversos contextos de *batch size*:\n",
"Em Abril de 2018, Yann LeCun, um dos principais pesquisadores sobre redes neurais e ganhador do \"nobel\" da computação (Prêmio Turing) [twittou](https://twitter.com/ylecun/status/989610208497360896) em resposta à Masters & Luschi (2018) que mostrava diversos contextos de *batch size*:\n",
"\n",
">\"Friends don't let friends use mini-batches larger than 32\"\n",
"\n",
"Então 32 é um valor empiricamente verificado que dá estabilidade ao treinamento"
"Então 32 é um valor empiricamente verificado que dá estabilidade ao treinamento.\n",
"\n",
"> Dominic Masters and Carlo Luschi. \"Revisiting small batch training for deep neural networks.\" _arXiv preprint arXiv:1804.07612_ (2018)."
]
},
{
Expand Down Expand Up @@ -1383,7 +1386,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
"version": "3.10.4"
},
"rise": {
"autolaunch": true,
Expand Down
19 changes: 16 additions & 3 deletions notebooks/Aula_18_b_Redes_Neurais_com_PyTorch.ipynb
Expand Up @@ -38,7 +38,17 @@
"\n",
"[**PyTorch**](https://www.pytorch.org/) é uma biblioteca de código aberto para aprendizado de máquina aplicável a uma ampla variedade de tarefas. Foi criada pelo **Facebook** em 2016 é a principal biblioteca para criação e treinamento de redes neurais artificiais. A API toda é escrita em Python mas é executada em C++ na CPU ou em CUDA/ROCM na GPU.\n",
"\n",
"No momento que eu escrevo esse tutorial (Abril de 2021), PyTorch está superando o TensorFlow (Google) em desempenho e adoção de uso. Isso acontece tanto na [academia](http://horace.io/pytorch-vs-tensorflow/) (mensurado pela adoção de artigos científicos nos principais encontros científicos de Aprendizagem Profunda e Aprendizagem de Máquina) quanto na [indústria](https://www.infoworld.com/article/3597904/why-enterprises-are-turning-from-tensorflow-to-pytorch.html) (mensurado pela adoção de grandes e renomadas empresas de tecnologia)."
"No momento que eu escrevo esse tutorial (Abril de 2021), PyTorch está superando o TensorFlow (Google) em desempenho e adoção de uso. Isso acontece tanto na [academia](http://horace.io/pytorch-vs-tensorflow/) (mensurado pela adoção de artigos científicos nos principais encontros científicos de Aprendizagem Profunda e Aprendizagem de Máquina) quanto na [indústria](https://www.infoworld.com/article/3597904/why-enterprises-are-turning-from-tensorflow-to-pytorch.html) (mensurado pela adoção de grandes e renomadas empresas de tecnologia).\n",
"\n",
"### Atualização (Junho 2022):\n",
"\n",
"TensorFlow está morto, Vida Longa ao PyTorch: [Google lost the battle for machine learning to Meta, insiders say. Now it's betting the future of its own products on a new internal AI project.](https://www.businessinsider.com/facebook-pytorch-beat-google-tensorflow-jax-meta-ai-2022-6).\n",
"\n",
"> Now, under the shadow of PyTorch, Google has been quietly building out a machine learning framework, called JAX (at one point an acronym for \"Just After eXecution,\" but officially no longer stands for anything), that many see as the successor to TensorFlow.\n",
"\n",
"Meus comentários: JAX é mais um backend de _autodiff_ do que uma biblioteca de redes neurais. \n",
"Ou seja tem um uso muito mais amplo que PyTorch.\n",
"Por exemplo, como um amostrador monte de correntes Markov"
]
},
{
Expand Down Expand Up @@ -652,10 +662,13 @@
"\n",
"Tamanho do Batch de dados que passa por vez pela rede neural antes da atualização dos parâmetros pelo *backpropagation*. Tamanhos grandes resultam em instabilidade no treinamento. Geralmente usam-se potências de $2$ $(2,4,8,16,\\dots, 2^n)$.\n",
"\n",
"Em Abril de 2018, Yann LeCun, um dos principais pesquisadores sobre redes neurais e ganhador do \"nobel\" da computação (Prêmio Turing) twittou em resposta à um artigo empírico que mostrava diversos contextos de *batch size*:\n",
"Em Abril de 2018, Yann LeCun, um dos principais pesquisadores sobre redes neurais e ganhador do \"nobel\" da computação (Prêmio Turing) [twittou](https://twitter.com/ylecun/status/989610208497360896) em resposta à Masters & Luschi (2018) que mostrava diversos contextos de *batch size*:\n",
"\n",
">\"Friends don't let friends use mini-batches larger than 32\"\n",
"\n",
"Então 32 é um valor empiricamente verificado que dá estabilidade ao treinamento"
"Então 32 é um valor empiricamente verificado que dá estabilidade ao treinamento.\n",
"\n",
"> Dominic Masters and Carlo Luschi. \"Revisiting small batch training for deep neural networks.\" _arXiv preprint arXiv:1804.07612_ (2018)."
]
},
{
Expand Down

0 comments on commit 96abad1

Please sign in to comment.