Google Colab ile Ücretsiz GPU Kullanımı
Google Colaboratory ile -ücretsiz Tesla K80 GPU üzerinde- Keras, Tensorflow ve PyTorch kullanarak derin öğrenme uygulamaları geliştirebilirsiniz.
Read this in English: https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d
Merhaba! Bu yazıda sizlere Google’ın geliştiricilere sunduğu ücretsiz bulut servisi olan Google Colab’ın kullanımını göstereceğim. Colab ile ücretsiz bir şekilde GPU üzerinde derin öğrenme uygulamaları geliştirebilirsiniz.
Aşağıdaki videoda, bu yazıda anlatılanları izleyebilirsiniz.
Google Colab ile Ne Yapabilirim?
- Python programlama dilinde uygulama geliştirebilirsiniz.
- Keras, TensorFlow, PyTorch ve OpenCV gibi kütüphaneleri kullanarak derin öğrenme (deep learning) uygulamaları geliştirebilirsiniz. Colab’ı diğer ücretsiz bulut servislerinden ayıran en önemli özellik; Colab’ın ücretsiz GPU sağlamasıdır.
Servis hakkında detaylı bilgiye sıkça sorulan sorular sayfalarından ulaşabilirsiniz.
Google Colab’ı Kullanıma Hazır Hale Getirme
Google Colab’ın kullanımıyla ilgili aşağıdaki adımları takip edebilirsiniz.
1. Google Drive’da Klasör Oluşturma
Colab kendi Google Drive’ınız üzerinde çalıştığı için öncelikle Drive’da kullanılacak klasör yapısını belirlememiz gerekiyor. Ben kendi Google Drive’ımda “uygulama” isminde bir klasör oluşturdum.
2. Dosyaları Yükleme
Daha önce oluşturduğumuz uygulama isimli klasörün içerisine çalıştırmak istediğimiz Python dosyalarımızı yükleyelim. Ben Deep Learning Türkiye topluluğu tarafından hazırlanan Pratik Derin Öğrenme Uygulamaları içerisinde bulunan rakam_tanima_CNN_MNIST.py dosyasını yükledim.
Colab üzerinde Python dosyalarını direkt olarak çalıştırabileceğiniz bir terminal olmadığı için .py uzantılı dosyaları notebook içerisinde çalıştırmak zorundayız.
3. Yeni Notebook Oluşturma
Google Drive üzerinde yeni bir notebook oluşturamadığımız için Google Colab’a giriş yapıyoruz. Colab’a giriş yaptığınızda ilk olarak Recent notebooks adında bir pencere karşılıyor bizi. Hemen sağ altta bulunan NEW NOTEBOOK’a tıklıyoruz.
Açılan pencerede NEW PYTHON 3 NOTEBOOK seçeneğini seçiyoruz.
Açılan sayfada ilk olarak notebook dosya ismini değiştirebilirsiniz. Ben ismini calistir.ipynb şeklinde değiştirdim.
Google Drive’da uygulama adında bir klasörde çalışma yapmak istediğim için öncelikle yeni oluşturduğum calistir.ipynb notebook’unu bu klasöre taşımam gerekiyor. Notebook’ta File >>Locate in Drive yolunu izleyerek Google Drive’da calistir.ipynb dosyasının nerede olduğunu buluyorum.
Aşağıdaki resimde de görebileceğiniz üzere Colab’ı kullanmaya başladığınızda Google Drive üzerinde Colab Notebooks isimli bir klasör oluşturuluyor; yeni oluşturduğunuz notebook’lar da bu klasörde tutuluyor.
Dosyaya sağ tıkladığımda açılan menüde Şuraya taşı seçeneği ile dosyayı Google Drive üzerinde oluşturduğum uygulama isimli klasöre taşıyorum.
Her şey yolunda ise uygulama klasörünüze giriş yaptığınızda aşağıdaki gibi bir manzara ile karşılaşıyor olmanız gerekiyor.
4. GPU’yu Ayarlama
Google Drive üzerinde calistir.ipynb dosyasına sağ tıklayıp Birlikte aç >> Colaboratory yolunu izleyerek notebooku Colab’da açabilirsiniz.
Notebook üzerinde Edit >> Notebook settings yolunu izleyerek aşağıdaki şekilde de göreceğiniz ekrana ulaşıyoruz. Burada Hardware accelerator’u GPU olacak şekilde değiştiriyoruz. Kaydedip bu ekrandan çıkıyoruz.
Colab’da Python Programlama
Yeni oluşturduğumuz Notebook üzerinde ilk olarak Python programlama dilinde ufak bir iki çalışma yapalım.
Bunun için Stanford Üniversitesi’nde hazırlanan Python Numpy Tutorial sayfasını kullanacağım. Derin öğrenmede en çok kullanılan programlama dili olan Python’ı hiç bilmiyorsanız bu sayfayı tavsiye ederim.
Sayfada yer alan üstteki kodları Colab’a yapıştırıp çalıştırıyorum. Aşağıdaki programda sıralama yapan bir fonksiyon belirtilmektedir.
Daha sonra temel veri tipleriyle ilgili aşağıdaki örneği yapalım.
Kodları çalıştırabildik. Siz de bu sayfada yer alan örnekleri deneyerek Python programlama dilini öğrenebilirsiniz.
Şimdi ikinci aşamaya geçelim ve daha önce Drive’a attığımız .py uzantılı dosyayı Colab’da çalıştıralım.
Colab’da .py Uzantılı Dosyaları Çalıştırma
Notebook ile .py uzantılı dosya aynı klasörde olmasına rağmen Notebook’ta aşağıdaki komutu çalıştırdığınızda kötü bir sürprizle karşılaşıyorsunuz. Bu problemin ilerleyen zamanlarda aşılacağını ve başka ek işleme gerek kalmadan Python dosyalarının çalışacağını düşünüyorum.
!python rakam_tanima_CNN_MNIST.py
Sorunu Çözelim
Google Drive ile Colab’ı tam olarak bağlamak için calistir.ipynb dosyamızda aşağıdaki kodları çalıştırıyoruz.
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
Kodları çalıştırdığınızda aşağıdaki gibi bir sonuçla karşılaşmanız gerekiyor.
Çalıştırdığımız kodun altında çıkan linke tıklayarak doğrulama kodumuzu alıyoruz. Doğrulama kodunu Enter verification code yazan yere yapıştırıp Enter’lıyoruz. Toplam 2 kere kutucuk çıkıyor. İki kutucuğa da doğrulama kodumuzu yapıştırıp Enter’a basıyoruz.
İşlemler tamamlandığında aşağıdaki gibi bir sonuçla karşılaşmanız gerekir.
Doğrulama işlemlerini tamamladıktan sonra ilk önce şunu:
!mkdir -p drive
!google-drive-ocamlfuse drive
Sonra da aşağıdaki kodu çalıştırıyoruz. uygulama değil de farklı bir klasörde çalışmak isterseniz uygulama yazan yeri değiştirmeniz gerekir.
import sys
sys.path.insert(0, 'drive/uygulama')
Nihayet Kodu Çalıştırıyoruz
İlk önce Keras’ı yükleyelim.
!pip install -q keras
Keras’ı yükledikten sonra 0‘dan 9’a el yazısı rakamların Evrişimli Sinir Ağları (Convolutional Neural Networks) ile tanınmaya çalışıldığı rakam_tanima_CNN_MNIST.py örneğini aşağıdaki gibi çalıştırabiliriz. Dosyada yer alan batch boyutu, epoch sayısı vb. hiperparametreleri istediğiniz gibi değiştirebilirsiniz. Bu konuda bilgi sahibi değilseniz Derin Öğrenme Uygulamalarında En Sık kullanılan Hiper-parametreler yazısını okuyabilirsiniz.
!python3 drive/uygulama/rakam_tanima_CNN_MNIST.py
Üstteki kodu çalıştırdığımızda bir iki dakika içerisinde aşağıdaki sonucu elde ediyoruz.
Sıkça Sorulan Sorular
Hangi Kütüphaneleri Yükleyebilirim?
Colab ile birlikte kütüphaneleri aşağıda komutlarla yükleyebilirsiniz.
Keras
!pip install -q keras
import keras
PyTorch
!pip install -q http://download.pytorch.org/whl/cu75/torch-0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl torchvision
import torch
OpenCV
!apt-get -qq install -y libsm6 libxext6 && pip install -q -U opencv-python
import cv2
XGBoost
!pip install -q xgboost==0.4a30
import xgboost
GraphViz
!apt-get -qq install -y graphviz && pip install -q pydot
import pydot
7zip Reader
!apt-get -qq install -y libarchive-dev && pip install -q -U libarchive
import libarchive
Diğer kütüphaneler
Diğer kütüphaneleri !pip install
veya !apt-get install
ile yükleyebilirsiniz.
Şu anda GPU’da mı çalışıyorum?
Colab’da an itibariyle GPU kullanıp kullanmadığınızı görebilmek için aşağıdaki kodu çalıştırabilirsiniz.
import tensorflow as tf
tf.test.gpu_device_name()
Kodu çalıştırdığınızda:
- iki nokta görüyorsanız CPU’dasınız,
- ‘/device:GPU:0’ görüyorsanız GPU’dasınız demektir.
Hangi GPU’yu Kullanıyorum?
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Üstteki kodu çalıştırdığınızda GPU’daysanız şöyle bir ekranla karşılaşırsınız. Görebileceğiniz üzere Tesla K80 üzerinde çalışıyoruz.
Bu kodu aynı zamanda GPU kullanıp kullanmadığınız test etmek için de kullanabilirsiniz. CPU’daysanız şöyle bir ekranla karşılaşırsınız.
Kullandığım RAM’in Özelliklerini Nasıl Görebilirim?
Aşağıdaki kodu çalıştırmanız yeterli.
!cat /proc/meminfo
Kullandığım CPU’nun Özelliklerini Nasıl Görebilirim?
Aşağıdaki kodu çalıştırmanız yeterli.
!cat /proc/cpuinfo
Sonuç
Bu sonuçlardan şu çıkarımları yapabiliriz:
- Artık binlerce dolarlık (fiyatına internetten bakabilirsiniz) Tesla K80'i ücretsiz olarak kullanabiliyoruz.
- %0.73 hata ile el yazısı rakamları tanıyabilen bir yapay zeka (evet derin öğrenme, makine öğrenmesi, yapay sinir ağı vb. değil yapay zeka) uygulamasını yalnızca bir-iki dakikada geliştirdik!
Ülkemizdeki yapay zeka çalışmalarına ivme kazandırması dileğiyle…
Sorunuz olursa buradan ya da LinkedIn’den bana ulaşabilirsiniz.