Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan PyTorch programlama dili eğitim dersidir. Eğitmen, PyTorch kütüphanesinin temel kavramlarını ve kullanımını adım adım anlatmaktadır.
- Video, PyTorch kütüphanesinin import edilmesiyle başlayıp, tensor objelerinin oluşturulması, boyutlandırılması ve dört işlem yapma konularını ele almaktadır. Daha sonra matris işlemleri, dilimleme, PyTorch tensörlerinin Numpy array'lerine dönüştürülmesi ve GPU-CPU bellekleri arasındaki geçiş yöntemleri (cpu_to_gpu, to_device, to_cpu) detaylı şekilde gösterilmektedir.
- Eğitim içeriğinde ayrıca implace fonksiyonunun bellek tasarrufu sağladığı, item metodunun tensor içindeki değerlere erişim sağladığı ve PyTorch'un otomatik gradyan hesaplama özelliği de anlatılmaktadır. Video, GPU ve CPU objeleri arasındaki farka değinerek sonlanmaktadır.
- PyTorch Kütüphanesine Giriş
- Bu derste PyTorch kütüphanesi anlatılacak ve önceki derste Anaconda üzerinden kurulumu gösterilmiş.
- PyTorch kütüphanesi objesi üzerine kuruludur ve tüm işlemler tensor objeler üzerinde gerçekleştirilir.
- Tensor objeleri çok boyutlu diziler olarak düşünülebilir ve Numpy'daki array'ler gibi çalışır.
- 01:14Tensor Oluşturma
- Boş bir tensor oluşturulabilir ve bellekte rastgele değerler atanabilir.
- Tensor'ların boyutları değiştirilebilir, örneğin 3 elemanlı bir vektör veya 2 satır 3 sütundan oluşan bir matris oluşturulabilir.
- Tensor'ların boyutu size fonksiyonu veya shape property ile kontrol edilebilir.
- 04:14Tensor Özellikleri
- Tensor'ların içinde tuttuğu veri tipi d-type property ile kontrol edilebilir.
- Tensor'ların veri tipi integer, float32, float16 veya double olarak belirlenebilir.
- Python listeleri kullanılarak da tensor oluşturulabilir, örneğin tensor fonksiyonu ile 4-5 değerlerinden oluşan 2 boyutlu bir vektör oluşturulabilir.
- 08:32Tensor İşlemleri
- Tensor'lar arasında toplama işlemi yapılabilir, örneğin x = torch.ones(2,3) ve y = torch.ones(2,1) tensor'ları için z = x + y şeklinde toplama yapılabilir.
- PyTorch'ta toplama işlemi için ayrıca add fonksiyonu da kullanılabilir.
- Implace (yer değiştirme) işlemi için add_inplace, subtract_inplace, multiply_inplace ve divide_inplace fonksiyonları kullanılabilir.
- 13:14Element-wise İşlemler
- Tensor'lar arasında element-wise (birer birer) işlemler yapılabilir, örneğin x = torch.ones(2,3) ve y = torch.ones(2,1) tensor'ları için z = x * y şeklinde çarpma yapılabilir.
- Bölme işlemi için de benzer şekilde z = y / x şeklinde yapılabilir.
- Tensor objesinin içindeki değerlere erişmek için item metodu kullanılabilir, ancak sadece tek bir element içeren tensorler skaler'e dönüştürülebilir.
- 16:18Bölme İşlemi ve Hatalar
- Bölme işlemi yapıldığında bilgisayarlar hassas bir çalışma yaparken hata oluşturabilir.
- Makinalar algoritmalar kullanarak ayrık işlemleri yapar.
- 17:07Dilimleme İşlemi
- Dilimleme konusu matrislerle çalışma yapanlar için önemli bir konudur.
- İki boyutlu matrislere erişmek için iki değer kullanılır ve PyTorch'ta indexleme sıfırdan başlar.
- Matrisin dışında bir bölgeye erişmeye çalışıldığında "index out of bound" hatası verir.
- 19:45Dilimleme Operatörleri
- Matrisin ilk kolonunu almak için satır kısmına iki nokta üst üste koyulur.
- Dilimleme operatörleri dahil iki dahil değil çalışır, yani yazdığınız değer dahil değil.
- Boş bırakarak tüm kolonları alabilir veya belirli bir kolondan başlayarak son kolona kadar alabilirsiniz.
- 22:34Matris Şeklini Değiştirme
- Matrisleri yeniden şeklini değiştirmek için view metodu kullanılır.
- View metodu ile matris vektör haline getirilebilir veya farklı boyutlarda matrisler oluşturulabilir.
- Eksi bir değeri joker olarak kullanarak matrisin satır ve kolon sayısını otomatik hesaplayabilirsiniz.
- 25:33Numpy ve PyTorch Arasındaki Dönüşüm
- Numpy array'leri PyTorch tensor'larına ve tersi dönüşüm yapılabilir.
- PyTorch tensor'larını numpy array'ine dönüştürmek için "x.numpy()" metodu kullanılır.
- Numpy array'lerini PyTorch tensor'ına dönüştürmek için "torch.fromnumpy(a)" metodu kullanılır.
- 28:56GPU ve CPU Objeleri
- Bilgisayarda GPU varsa PyTorch GPU objeleri ile CPU objeleri arasında ayrım yapar.
- GPU olup olmadığını test etmek için "torch.cuda()" metodu kullanılabilir.
- 29:48Tensor İşlemleri ve Bellek Taşıma
- Tensor objeleri bellekte olduğunda doğrudan numpy metodlarını kullanamazsınız.
- Tensor objelerini işlem yapabilmek için önce "cpu" metoduyla GPU belleğindeki objeyi CPU belleğine taşımanız gerekir.
- CPU ve GPU belleğindeki objeleri doğrudan toplayamazsınız, bir tanesini diğer belleğe taşımanız gerekir.
- 31:49Bellek Taşıma Yöntemleri
- CPU belleğindeki bir objeyi GPU belleğine taşımak için "to_gpu" metodunu kullanabilirsiniz.
- Program başına "device" değişkeni tanımlayıp, "torch.device()" ile GPU'yu belirleyip, objeyi "to_device" ile GPU'ya taşıyabilirsiniz.
- Objeyi tekrar CPU belleğine taşımak için "cpu_content" metodunu kullanabilir veya "to_device(CPU)" şeklinde yeni bir değişken oluşturabilirsiniz.
- 33:20Otomatik Gradyan Hesaplama
- PyTorch'un otomatik gradyan hesaplama (türev alma) özelliği vardır.
- Bir işlem yaparken arka tarafta o işlemin türevinin hesaplaması otomatik olarak yapılır.
- Bu özellik, neural network'lerdeki optimizasyon sırasında çok fazla kullanılır ve ilerleyen derslerde ayrıntılı işlenecektir.