👷♀️ Yapay Sinir Ağlarının Uygulanması Üzerine Notlar
Last updated
Last updated
Terim | Açıklama |
👩🔧 Vektörleştirme | Python kodunu döngü kullanmadan hızlandırma yöntemi |
⚙ Yayma (Broadcasting) | Dizileri genişleterek Python kodunu daha hızlı çalıştırmak için başka bir yöntem |
🔢 Dizi Rankı | Bir dizinin sahip olduğu boyut sayısı |
1️⃣ Rank-1 Dizisi | Tek bir boyuta sahip bir dizi |
Bir skalar sıfır rank'a sahip sayılır ❗❕
Vektörleştirme, Python veya Matlab kodunu döngü kullanmadan hızlandırmak için kullanılır. Böyle bir fonksiyon kullanmak kodun çalışma süresini verimli bir şekilde en aza indirmeye yardımcı olabilir. Vektörlerin nokta çarpımı (dot product), vektörlerin dış çarpımı (outer products) ve Hadamard Çarpımı (element wise multiplication) gibi çeşitli işlemler vektörler üzerinden gerçekleştirilebilmektedir.
Daha hızlı (paralel işlemlere izin verir) 👨🔧
Daha basit ve daha okunabilir kod ✨
İki dizinin nokta çarpımını bulma:
Dizideki her elemanın karekökünü alma
np.sqrt(x)
Dizinin tüm elemanlarının toplamını almak
np.sum(x)
Dizideki her bir elemanın mutlak değerini alma
np.abs(x)
Dizideki her elemana trigonometrik fonksiyonlar uygulama
np.sin(x)
, np.cos(x)
, np.tan(x)
Dizideki her bir eleman üzerine logaritmik fonksiyonlar uygulama
np.log(x)
, np.log10(x)
, np.log2(x)
Aritmetik işlemleri dizilerdeki karşılık gelen elemanlara uygulama
np.add(x, y)
, np.subtract(x, y)
, np.divide(x, y)
, np.multiply(x, y)
Dizideki karşılık gelen elemanlara kuvvet işlemi uygulama
np.power(x, y)
Bir dizinin ortalamasını bulma
np.mean(x)
Bir dizinin medyanını bulma
np.median(x)
Bir dizinin varyansını bulma
np.var(x)
Bir dizinin standart sapmasını bulma
np.std(x)
Bir dizinin maximum ve minimum değerini bulma
np.max(x)
, np.min(x)
Bir dizinin maximum ve minimum değerinin indisini bulma
np.argmax(x)
, np.argmin(x)
Aritmetik işlemler sırasında numpy'nin farklı boyutlardaki dizileri nasıl ele aldığını açıklar. Bazı kısıtlamalara bağlı olarak, daha küçük dizi daha büyük dizi boyunca yayınlanır, böylece uyumlu şekillere sahip olurlar.
Uygulamalı olarak:
Elimizde (m,n)
boyutundaki A matrisi olsun. (1,n)
boyutundaki B matrisi ile toplamak / çıkarmak / çarpmak / bölmek istiyorsak, B matrisi m
kez kopyalanacak, daha sonra istenen işlem gerçekleşecek.
Aynı şekilde: Elimizde (m,n)
boyutundaki A matrisi olsun. (m,1)
boyutundaki B matrisi ile toplamak / çıkarmak / çarpmak / bölmek istiyorsak, B matrisi n
kez kopyalanacak, daha sonra istenen işlem gerçekleşecek.
Uzun lafın kısası: Farklı boyutlardaki diziler (veya matrisler) toplanamaz, çıkartılamaz veya genel olarak aritmetik olarak kullanılamaz. Dolayısıyla, boyutları genişletmek bunu mümkün kılmanın bir yoludur, böylece uyumlu şekillere sahip olurlar.
(1,n) boyutundaki vektörü (2,n) boyutundaki matrise ekleme
Rank-1 dizilerinin kullanılmaması tavsiye edilmektedir
Rank-1 Dizileri, bulunması ve düzeltilmesi zor olan hatalara neden olabilir, örneğin:
Rank-1 dizilerindeki dot işlemi:
Rank-2 dizilerindeki dot işlemi:
Özet: Kodlarımızı daha hatasız ve kolay hata ayıklamak için rank-1 dizilerini kullanmaktan kaçınmalıyız 🐛