Listeler, Python'da en çok kullanılan veri yapılarından biridir. Değiştirilebilir, sıralı ve farklı veri tiplerini içerebilen koleksiyonlardır.
Sözlükler, anahtar-değer çiftlerini saklayan koleksiyonlardır. Anahtarlar benzersiz olmalıdır.
Demetler, liste benzeri ancak değiştirilemeyen (immutable) koleksiyonlardır.
Kümeler, sırasız ve benzersiz elemanlar içeren koleksiyonlardır.
Python'da for döngüsü, bir koleksiyon üzerinde yineleme yapmak için kullanılır.
While döngüsü, belirli bir koşul doğru olduğu sürece çalışır.
İteratorlar, bir koleksiyonun elemanlarını tek tek elde etmeyi sağlayan nesnelerdir.
Generator'lar, büyük veri kümeleri için bellek verimli şekilde çalışan özel bir iterator türüdür.
Fonksiyonlar, tekrar kullanılabilir kod blokları oluşturmanızı sağlar.
*args değişken sayıda konumsal argümanı, **kwargs ise değişken sayıda anahtar-değer argümanını kabul eder.
Lambda fonksiyonları, tek satırda tanımlanabilen isimsiz fonksiyonlardır.
Sınıflar, veri ve davranışı bir arada tutan yapılardır.
Kalıtım, bir sınıfın başka bir sınıftan özellik ve davranış miras almasını sağlar.
Python sınıflarında, özel davranışlar tanımlamak için "__" ile başlayan ve biten metotlar kullanılır.
Dataset, veri kümesini temsil eden ve veri erişimi sağlayan bir soyut sınıftır. PyTorch'ta özel veri kümeleri için torch.utils.data.Dataset
sınıfından türetilir.
DataLoader, Dataset'ten verileri batch'ler halinde yükleyen bir yardımcı sınıftır. Ayrıca veri karıştırma, paralel yükleme gibi özellikleri de sağlar.
Collate fonksiyonu, batch içindeki verilerin nasıl birleştirileceğini özelleştirmenizi sağlar.
PyTorch'ta sinir ağları torch.nn.Module
sınıfından türetilir.
Forward fonksiyonu, sinir ağının ileri yayılım işlemini tanımlar. Veriler ağ üzerinden geçirilirken nasıl işleneceğini belirler.
forward()
fonksiyonu, module(input)
şeklinde çağrı yapıldığında otomatik olarak çağrılır. Yani model(x)
çağrısı, aslında model.forward(x)
çağrısıdır.
Forward fonksiyonunun çalışma adımları:
self.fc1(x)
F.relu(...)
PyTorch'un otomatik diferansiyel özelliği sayesinde, forward işlemi sırasında hesaplama grafiği oluşturulur ve backpropagation (geri yayılım) için kullanılır.
PyTorch'ta tüm sinir ağı modellerimiz nn.Module
sınıfından türetilir. Bu kalıtım sayesinde: