Dev (Back & Front)

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