Gün 9'da aslında ileri seviye python konusu ile ilgili sınav vardı ama bunu paylaşmak gerçekten istemedim biraz zaman kaybı olabilir diye. Sadece bundan dolayı 9. günde ne olduğunun bilgisini vermek amaçlı bu bilgiyi paylaşmak istedim. Şimdi 10. gün ile devam edelim.
Pytorch kütüphanesine başlıyoruz ve açıkçası eğitmen bu kütüphaneyi tenserflow ile karşılaştırdı. Bende de açıkçası tenserflow ile ilgili bir kitap vardı daha öncesinde de belirttiğim gibi Derin Öğrenme kursların başlamıştım ama tamamlamamıştı o kurslarda da tenserflow'dan bahsediyordu. Ancak eğitmenin burada pytorch'u seçmesi ilk başta biraz beni rahatsız etmişti. Daha sonrasında küçük bir araştırma yaptığımda pytorch aslında daha iyi bir seçenmiş. Kısacası chatgpt'nin dedikleri aşağıdaki gibi...
PyTorch vs TensorFlow: Hangisini Seçerdim?
Bugün sıfırdan bir yapay zekâ projesi geliştirecek olsaydım çoğu senaryoda PyTorch'u seçerdim. Bunun nedeni TensorFlow'un kötü olması değil; son yıllarda yapay zekâ ekosisteminin büyük ölçüde PyTorch tarafına kaymış olmasıdır.
Karşılaştırma
| Konu | PyTorch | TensorFlow |
|--------|----------|------------|
| Öğrenme Eğrisi | Daha kolay | Daha karmaşık |
| Python Hissi | Daha doğal | Daha framework odaklı |
| Araştırma Dünyası | Lider | Daha az tercih ediliyor |
| Production Kullanımı | Çok iyi | Çok iyi |
| Debug Süreci | Daha kolay | Daha zor |
| Dokümantasyon ve Örnekler | Çok fazla | Fazla ancak eski örnekler de bulunuyor |
| LLM Ekosistemi | Açık ara lider | Geride |
| Hugging Face Desteği | Birinci sınıf | İkinci planda |
PyTorch'un Güçlü Olduğu Alanlar
Aşağıdaki alanlarda çalışmayı planlıyorsanız PyTorch günümüzde en yaygın tercih edilen çözümdür:
-
Büyük Dil Modelleri (LLM)
-
RAG (Retrieval-Augmented Generation) sistemleri
-
Fine-tuning çalışmaları
-
Stable Diffusion ve görüntü üretimi
-
Yapay zekâ ajanları
-
Computer Vision projeleri
-
Derin öğrenme araştırmaları
Örneğin aşağıdaki popüler ekosistemlerin tamamı PyTorch merkezli çalışmaktadır:
-
PyTorch
-
Hugging Face Transformers
-
Meta Llama
Tamam bu bilgiler oldukça yeterli ve ikna ediciydi. Şimdi PyTorch ile eğitimin 10. günde bahsedilen scaler, vektor, matris ve tensor kavramlarına değinelim.
Eğitmenin dediğine göre aslında pythorch hepsini birer tensor olarka kabul ediyormuş. Numpy'da yaptığımız konulara oldukça benzer olacak şekilde burada çeşitli işlemler yaptık.
İlk örnedğimizde bir scaler oluşturalım yani aslında bir sabit yani 0 boyutlu:
import torch
scaler = torch.tensor(5)
print(scaler)
print(scaler.ndim)
print(scaler.shape)
Çıktısı aşağıdaki gibi olacaktır.
tensor(5)
0
torch.Size([])
Şimdi ise tek boyutlu bir dizi yani vektör oluşturalım.
vektor = torch.tensor([1,2,3])
print(vektor)
print(vektor.ndim)
print(vektor.shape)
İşte çıktısı:
tensor([1, 2, 3])
1
torch.Size([3])
Eğitmenin dediğine göre aslında bir tensörün kaç boyutlu olduğunu anlamak isterseniz dışardan içeriye köşeli parantezleri sayabilirsiniz dedi. Güzel bir taktik oalbillir kod okurken... Şimdi matris tanımlayalım.
matris = torch.tensor([[1,2,3],[2,3,4]])
print(matris)
print(matris.ndim)
print(matris.shape)
İşte çıktısı:
tensor([[1, 2, 3],
[2, 3, 4]])
2
torch.Size([2, 3])
Şimdi ise 3 boyutlu bir matris tanımlayalım. Mesela 10px'lik kare bir ekranımız olsun. buradaki pikseller RGB olacaklar doğal olarak her pikselde aslında yanen 3 tane renk var. Bu renkleri bir vektör gibi düşünebiliriz ama bu vektörlerin birleşiminden 3 boyutlu bir yapı ortaya çıkacak. Örneğin:
image = torch.Tensor(torch.randint(0,255,(3,10,10)))
print(image)
print(image.ndim)
print(image.shape)
Çıktı bu şekilde olacak.
tensor([[[249, 215, 195, 166, 116, 215, 113, 173, 135, 38],
[238, 205, 193, 172, 86, 88, 78, 167, 109, 125],
[ 17, 36, 26, 251, 154, 220, 100, 82, 59, 172],
[ 87, 147, 36, 189, 16, 115, 123, 143, 14, 162],
[234, 182, 127, 206, 36, 184, 125, 113, 248, 111],
[ 81, 148, 148, 4, 13, 170, 246, 192, 54, 125],
[ 74, 110, 187, 133, 251, 240, 96, 173, 184, 174],
[104, 19, 222, 18, 18, 148, 104, 205, 11, 182],
[ 14, 46, 66, 60, 198, 17, 121, 114, 197, 178],
[ 33, 184, 127, 121, 196, 37, 105, 105, 139, 236]],
[[ 18, 226, 230, 13, 240, 201, 234, 16, 232, 101],
[215, 226, 78, 113, 67, 174, 54, 16, 230, 249],
[ 90, 254, 137, 40, 204, 221, 252, 175, 74, 135],
[217, 18, 194, 243, 157, 241, 195, 138, 244, 212],
[228, 192, 10, 65, 14, 34, 90, 236, 98, 143],
[152, 222, 180, 61, 236, 49, 18, 116, 25, 29],
[ 23, 85, 33, 243, 227, 249, 152, 190, 189, 156],
[157, 98, 31, 120, 10, 189, 61, 85, 180, 4],
[234, 72, 83, 134, 217, 146, 3, 62, 166, 68],
[130, 44, 220, 74, 153, 232, 191, 251, 196, 48]],
[[ 87, 69, 112, 189, 145, 169, 212, 72, 103, 240],
[133, 111, 22, 241, 114, 63, 156, 151, 56, 4],
[122, 3, 17, 209, 200, 244, 145, 114, 20, 47],
[ 5, 7, 131, 208, 29, 250, 123, 77, 221, 184],
[ 2, 45, 11, 140, 236, 89, 165, 42, 220, 173],
[104, 141, 17, 143, 15, 248, 221, 45, 248, 79],
[156, 10, 222, 136, 192, 94, 183, 154, 154, 82],
[ 89, 237, 216, 94, 88, 60, 126, 54, 5, 201],
[146, 50, 75, 242, 227, 135, 96, 253, 64, 113],
[ 96, 137, 241, 184, 164, 148, 153, 186, 150, 40]]])
3
torch.Size([3, 10, 10])
İlk Yorumu Siz Yapın