
Colab » online olarak kod çalıştırabileceğimiz ve yapay zekâ modelleri eğitebileceğimiz, Google’ın sunduğu ücretsiz bir platform.
Google Colaboratory ile ücretsiz Tesla K80 GPU üzerinde Keras, Tensorflow ve PyTorch kullanarak Derin Öğrenme uygulamaları geliştirilebilir. Google Colab üzerinde normal CPU, Tesla K80 GPU ile veya Google tarafından geliştirilen TPU ile eğitim işlemi gerçekleştirilebilmektedir.
Colab kullanmak için Gmail ve Google Drive hesabı olması gerekir.
Linux komutları kullanarak çeşitli bilgiler elde edebiliriz.
Bulunduğumuz Dizini Öğrenme
pwd
Bulunduğumuz Dizinde dosyaları listeleme
!ls
Ayrıca aşağıdaki kodları da kullanabilirsiniz:
ls -alh
##total 40K
##drwxr-xr-x 3 root root 4.0K Dec 27 13:42 ./
##drwxr-xr-x 1 root root 4.0K Dec 27 13:42 ../
##-rw-r--r-- 1 root root 1.3K Dec 27 13:42 config.py.template
##-rw-r--r-- 1 root root 6.1K Dec 27 13:42 gen.py
##drwxr-xr-x 8 root root 4.0K Dec 27 13:42 .git/
##-rw-r--r-- 1 root root 395 Dec 27 13:42 .gitignore
##-rw-r--r-- 1 root root 1.1K Dec 27 13:42 LICENSE
##-rw-r--r-- 1 root root 4.6K Dec 27 13:42 README.md
Dizin Değiştirme
import os
os.chdir("/content/drive/My Drive/Demo")
##veya
cd /content/drive/MyDrive/Demo/models/research/object_detection
Sistem Özelliklerini Öğrenme
%cat /etc/lsb-release
Ram Özelliklerini Öğrenme
!cat /proc/meminfo
Hangi GPU Rezerve Edilmiş
# GPU kullanıyoruz mu test edelim
!nvidia-smi
Google Drive Bağlama
from google.colab import drive
drive.mount("/content/drive")
Drive'daki Dosyaları Listeleme
!ls "/content/drive/My Drive"
Git Repo İndirme
!git clone https://github.com/tensorflow/models.git
.py Uzantılı Dosyaları Çalıştırma
!python3 demo.py
Bir Dizinden Başka Dizine Dosya Kopyalama
!cp /content/myfolder/myitem.txt /content/gdrive/MyDrive/mydrivefolder/
Yeni Klasör Oluşturma
!mkdir images
#iki tane ayrı klasör oluşturma
!mkdir test train
Yeni Dosya Oluşturma
!touch '/content/drive/MyDrive/Demo/models/research/object_detection/training/label_map.pbtxt'
Uzak Sunucudan Dosya Çekme
Uzak sunucudan çekeceğiniz dosyanın raw olmasına dikkat edin yani URL'nin raw ile başlamasına dikkat edin. Aksi halde URL'ye ait web sayfasının kaynak kodları olan HTML kodlarını çekersiniz.
!wget "https://raw.githubusercontent.com/TannerGilbert/Tensorflow-Object-Detection-with-Tensorflow-2.0/master/detect_from_image.py" -P "/content/drive/MyDrive/Demo/models/research/object_detection"
İnternetten Resim Çekip Kaydetmek
!wget -O yeni_resim_adi.jpg https://www.siteadi.com/resim.jpg
Bir Dosyanın İçini Görüntüleme
!cat generate_tfrecord.py
Bir Klasörü Kopyalama
import shutil
kaynak_klasor = '/content/drive/MyDrive/Demo'
hedef_klasor = '/content/drive/MyDrive/Demorginal'
shutil.copytree(kaynak_klasor, hedef_klasor)
Boş olmayan klasörü silme
import shutil
shutil.rmtree('/content/drive/MyDrive/Demo/folder_name')
.jpg, .xml ve .png uzantılı dosyaları silme
import glob
import os
folder = '/content'
# Klasör içindeki tüm resim dosyalarının listesini al
image_files = glob.glob(os.path.join(folder, '*.jpg')) + glob.glob(os.path.join(folder, '*.xml')) + glob.glob(os.path.join(folder, '*.png'))
# Her bir dosya için
for file_name in image_files:
# Dosyayı sil
os.remove(file_name)
tar Dosyası Çıkarma
!tar -xvf /content/drive/MyDrive/Demo/models/research/object_detection/efficientdet_d0_coco17_tpu-32.tar.gz
#başka bir dizine çıkarma
!tar -xvf 'test.tar' -C 'content/cell_images'
.rar dosyası çıkarma
!unrar x "/content/drive/MyDrive/Demo/models/research/object_detection/images/images.rar" "/content/drive/MyDrive/Demo/models/research/object_detection/images/"
.zip dosyası çıkarma
!unzip '/content/drive/My Drive/file_name.zip' -d '/content/drive/My Drive'
Google Colab'da başka dizine dosya taşımak için
Google Colab'da bir dosya taşımak için, önce dosyaların bulunduğu dizine erişmeniz gerekir. Ardından, dosyaları hedef dizine taşımak için Python'un os modülünü kullanabilirsiniz.
Aşağıdaki kod örneği, xml ve jpg uzantılı dosyaları bulundukları dizinden bir üst dizine taşımak için kullanılabilir:
import os
from shutil import move
source_dir = "/content/your/source/directory" # Kaynak dizini buraya yazın
target_dir = "/content/your/target/directory" # Hedef dizini buraya yazın
# Dizindeki her dosya için işlem yap
for filename in os.listdir(source_dir):
if filename.endswith(".xml") or filename.endswith(".jpg"):
# Dosyanın tam yolu
file_path = os.path.join(source_dir, filename)
# Dosyayı hedef dizine taşı
move(file_path, target_dir)
XML dosyası içinde kelime değiştirme
import os
import glob
import fileinput
folder_path = '/content/drive/MyDrive/Demo/models/research/object_detection/images/test'
old_word = '<path>/test'
new_word = '<path>/content/drive/MyDrive/Demo/models/research/object_detection/images/test'
print(folder_path)
os.chdir(folder_path)
for file in glob.glob("*.xml"):
with fileinput.FileInput(file, inplace=True) as f:
for line in f:
print(line.replace(old_word, new_word), end='')
Tensorboard
#load tensorboard
%load_ext tensorboard
%tensorboard --logdir '/content/drive/MyDrive/Demo2/models/research/object_detection/training'
Kütüphane Kurulumları
Aşağıdaki komutu kod hücresine yazarak varsayılan olarak yüklenmemiş kütüphaneleri yükleyebiliriz:
! pip install [kütüphane_ismi]
Google Colab Pro ve Colab Pro+
Bize ücretsiz olarak sunulan plan dışında bir de Google Colab Pro ve Google Colab Pro+ planları mevcut. Bu planlar arasındaki farklara beraber bir göz gezdirelim:
Colab | Colab Pro | Colab Pro+ | |
GPU | K80 | K80, T4 ve T100 | K80, T4 ve T100 |
RAM | 16 GB | 32 GB | 52 GB |
Çalıştırma ortamı | 12 saat | 24 saat | 24 saat |
Arka planda çalıştırma | Hayır | Hayır | Evet |
Fiyat | Ücretsiz | $9.99/ay | $49.99/ay |
Bağlantının Kesilmesini Durdurmak
Google Colab Kısayolları
Eylem: | Kısayol: |
Seçilmiş hücreyi çalıştırma | Ctrl / Cmd + Enter |
Seçilmiş hücreyi çalıştırma ve yeni hücreye geçme | Shift + Enter |
Yukarıya kod hücresi ekleme | Ctrl / Cmd + M + A |
Aşağıya kod hücresi ekleme | Ctrl / Cmd + M + B |
Seçilmiş hücreyi silme | Ctrl / Cmd + M + D |
Kodun yürütülmesini durdurma | Ctrl / Cmd + M + I |
Seçilmiş hücreyi kod hücresine dönüştürme | Ctrl / Cmd + M + Y |
Seçilmiş hücreyi metin hücresine dönüştürme | Ctrl / Cmd + M + M |
Seçilmiş satırları yoruma dönüştürme | Ctrl / Cmd + / |
Bulma ve değiştirme | Ctrl / Cmd + M |
Hangi GPU’yu Kullanıyorum?
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
GPU kullanıyorsanız aşağıdaki gibi bir uyarı alacaksınız:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 7312550878927926302
xla_global_id: -1, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 14444920832
locality {
bus_id: 1
links {
}
}
incarnation: 12258297045353238447
physical_device_desc: "device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5"
xla_global_id: 416903419]
Eğer GPU kullanmıyorsanız aşağıdaki gibi bir bilgi görebilirsiniz:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 17150428785495959519
xla_global_id: -1]
GPU Test ve Device İsimleri
import tensorflow as tf
tf.test.gpu_device_name()
#from.tensorflow.python.client import device_lib
#device_lib.list_local_devices()
Hangi GPU Bizim İçin Ayrılmış?
Tesla T4 veya Tesla K80? Çalışma zamanının türünü GPU olarak değiştirdikten sonra aşağıdaki kodu çalıştırabilirsiniz:
!pip install nvidia-smi
!nvidia-smi
Menüden Runtime(Çalışma Zamanı) Factory reset Runtime(Çalışma zamanını yeniden başlat) ile tekrar çalıştırıp yine değişip değişmediğini kontrol edebilirsiniz. Tesla T4 veya Tesla K80 hangisi daha iyi onu anlamak için biraz araştırma yapmanız gerekecek.
GPU arka ucuna bağlanılamıyor
Uzun bir süredir ücretsiz olarak GPU kullandığınız için sınıra geldiğiniz için böyle bir uyarı alırsınız. Dolayısıyla Google Colab sizleri ücretli versiyonlara yönlendirmek isteyecektir.
Google Colab Üzerinde R Kodlarını Çalıştırmak
Google Colab üzerinde R kodlarını çalıştırmak için aşağıdaki adımları izleyebilirsiniz:
- Öncelikle Colab'a giriş yapın, tahmin edebilirsiniz ki gmail hesabıyla kullanabilirsiniz.
- Daha sonra Colab menüsünden Çalışma zamanı Çalışma zamanı türünü değiştir R' seçin
- Daha sonra R kodlarınıza yazarak çalıştırabilirsiniz.
getwd() #'/content' print(version) #platform x86_64-pc-linux-gnu #arch x86_64 #os linux-gnu #system x86_64, linux-gnu #status #major 4 #minor 3.2 #year 2023 #month 10 #day 31 #svn rev 85441 #language R #version.string R version 4.3.2 (2023-10-31) #nickname Eye Holes