Desenvolvimento

28 fev, 2018

GPU para Deep Learning por conta do Google

Publicidade

Oi, pessoal! Tudo bem?

Se vocês já tentaram treinar uma rede neural profunda em seus computadores pessoais, devem saber a diferença que uma placa gráfica (GPU) faz! A diferença de tempo no treinamento é gigantesca entre o processamento feito em CPU e GPU, mesmo que vocês tenham uma plaquinha gráfica modesta. Vale muito mais a pena usá-la do que seu processador core i7.

Já pensou poder usar uma GPU parruda sem ter que gastar milhares de reais? E de graça, já pensou? Isso está apenas há alguns cliques de você e hoje vou te mostrar como acessar essa maravilha!

Muitas pessoas tem perguntado sobre preço. O serviço é gratuito, pessoal! Isso mesmo, 0800! Segundo esta thread no Kaggle, existe uma limitação de 12h de uso ininterrupto, mas é possível salvar o status intermediário do treinamento! Na mesma thread no Kaggle, é mencionada a configuração de 2 vCPUs, 13G RAM e GPUs K80s!

O Google Colab é uma plataforma cloud gratuita que permite rodar código Python (2.7 e 3.6) em um formato muito parecido com um Jupyter Notebook (se você não sabe o que é isso, dê uma olhada aqui) de forma colaborativa, o que já é muito legal, e agora foi liberado o suporte a GPU como otimização!

Para saber mais sobre o Google Colab, clique aqui. Existe também uma FAQ sobre o Colab neste link.

Legal, agora vamos rodar um exemplo. Para acessar o Colab:

  • Acesse em sua conta Google o Drive
  • No Drive, clique em Novo > Mais > Colaboratory

Abaixo está uma imagem para ilustrar os passos feitos até aqui.

Com isso, você irá iniciar um novo documento no Colab, como um novo notebook do Jupyter. Veja abaixo:

Essa interface funciona de forma muito parecida com um notebook Jupyter, experimente um pouco!

Para ativar a aceleração por GPU faça o seguinte:

  1. Acesse o menu Edit > Notebook settings
  2. Em Hardware accelerator, mude para GPU e pronto!
  3. Neste menu você também pode mudar para Python 3

Certo, mas como saber se estou mesmo usando GPU? Vamos para um teste!

GPU ativada, agora é com você! Se quiser testar algum projeto mais interessante, tenho alguns no meu Github.

Destaco estes aqui:

  • Classificação de imagens com redes convolucionais (dataset cifar-10)
  • Classificação de imagens com redes feedforward (dataset mnist)
  • Tradução de texto com redes seq2seq (en-fr com vocabulário limitado)

Espero que tenham gostado! Como sempre, todas as perguntas, feedbacks e sugestões são bem vindos!

Um abraço!

Referências