Zephyrnet Logosu

Pytorch Tensörleri ve İşlemleri

Tarih:

Giriş

İlginin ilerlemesi Derin Öğrenme son yıllarda ve TensorFlow, PyTorch, vb. gibi Makine Öğrenimi araçlarının patlaması, kullanım kolaylığı ve kodların kolayca hata ayıklamasını sağlayacak.

MxNet, Tensorflow, Jax, PaddlePaddle, Caffe 2, Mindspore ve Theano gibi birçok popüler çerçeve, hesaplamayı temsil eden ve veri yığınlarına uygulanabilen statik bir veri akışı grafiği oluşturacakları için popülerlik kazanacaktır. Tüm hesaplamaya ve teorik olarak görünürlük sağlayacak olsalar da, gelişmiş performans ve ölçeklenebilirlik ile güçlendirilirler. Bu, esneklik, hata ayıklama kolaylığı ve kullanım kolaylığı pahasına olacaktır.

Bu makale, Python'da yazılmış bir Makine Öğrenimi çerçevesi olan Pytorch hakkında bilgiler sağlar. Derin Öğrenme çerçevelerinin çoğu ya kullanılabilirliğe ya da hıza odaklandığından, ancak Pytorch bu iki hedefin uyumlu olduğunu gösterir: Kodları model olarak destekleyecek, hata ayıklamayı kolaylaştıracak zorunlu ve Pythonic Programlama Stilini desteklemek için tasarlanmıştır ve verimli kalacaktır. GPU(Graphic Processing Unit) ve TPU(Tensor Processing Units) gibi donanım hızlandırıcı araçlar.

PyTorch'a gücünü veren torch-vision, bilgisayar görüşü için Timm, metin için meşale metni ve sarılma yüzü ve konuşma için meşale sesi gibi çeşitli Python kitaplıkları PyTorch'un üzerine inşa edilmiştir.

Bu makale, Veri Bilimi Blogatonu.

İçindekiler

Neden Pytorch?

  • En popüler araştırma derin öğrenme çerçevesidir.
  • Birçok önceden oluşturulmuş derin öğrenme modeline (Torch Hub/ torch-vision.models) erişebilir.
  • Tüm yığın: verileri ön işleme, verileri modelleyin, modeli uygulamanızda/bulutunuzda konuşlandırın.
  • Başlangıçta Facebook/Meta tarafından şirket içinde tasarlanmış ve kullanılmıştır (artık açık kaynak ve Tesla, Microsoft ve Open AI gibi şirketler tarafından kullanılmaktadır).
  • PyTorch, esneklik ve hıza odaklanırken bilişsel yükü en aza indirir.
  • PyTorch'un 2017'nin başlarında piyasaya sürülmesinden bu yana popülerlik kazanacak.

Lansmanından bu yana Pytorch'un artan trendleri.

ateş feneri

tensör

Tensör, Pytorch'un temel bir yapı taşıdır ve temel olarak bir tensör ile aynıdır. Numpy dizisi. Bilgisayarlar görüntüleri değil standart sayıları anladığından, çoğunlukla Görüntüleri, Sesi işlemek için kullanılan matematiksel bir forma dönüştürmek için kullanılır. Bu nedenle, görüntüleri sayısal biçimlere dönüştürmek önemlidir.

Tensörlerin sunduğu önemli özelliklerden biri, optimize edilmiş çıktının hesaplanmasına yardımcı olan üzerlerinde gerçekleştirilen tüm işlemlerin kaydını saklayabilmeleridir; bu, bir tensörün Autograd işlevselliği kullanılarak yapılabilir.

Basit bir ifadeyle, ölçekleyici – vektör – matrisler – akış olarak tensör

1. Ölçekleyici, 0 boyutlu bir Vektördür.

2. Vektör, 1 boyutlu bir Vektördür.

3. Matrisler 2 boyutlu Vektörlerdir.

4. Tensörler, genelleştirilmiş N-boyutlu Tensörlerdir.

Pytorch tensörleri

Tensör Kullanım Örnekleri

Pytorch yerleşik bir Google İşbirliğidir, şimdi temel kodlarını Pytorch Tensörleri üzerinde çalışmak için nasıl kullanacağımıza bakıyoruz.

1. Pytorch'u içe aktarma ve sürümünü alma.

 import torch print(torch.__version__) # Output 1.13.1+cu116

2. Pytorch'ta ölçekleyici oluşturma.

scaler = torch.tensor(7)
scaler
# Output
tensor(7)

3. Pytorch'ta tensör oluşturma.

vector = torch.tensor([7,7])
vector
# output
tensor([7, 7])

4. Torch'ta boyutları elde etmek için şunları kullanabiliriz:

vector.ndim
# output
1

5. Torch'ta vektör şeklini almak.

vector.shape
# Output
torch.Size([2])

6. Pytorch'ta matrisi elde etmek için.

Matrix = torch.tensor([[1,7], [2,7]])
# output
tensor([[1, 7], [2, 7]])

7. Pytorch'ta rastgele sayılar oluşturmak için.

random = torch.rand(7)
# output
tensor([0.0324, 0.9962, 0.0709, 0.7007, 0.6523, 0.0256, 0.4912])

8. Tensörde çarpma, toplama ve çıkarma gibi yerleşik işlevleri uygulayın.

9. Float tensör oluşturma.

torch.FloatTensor([1.1, 1.2, 1.3])
# Output
tensor([1.1000, 1.2000, 1.3000])

10. Pytorch kullanarak bir sayı aralığı oluşturma.

torch.arange(0,10) # Output
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

PyTorch Tensörleri ML ve DL için Neden Önemlidir?

Denetimli bir makine öğrenimi probleminde, bazı hedef değerlerle (Doğru/Yanlış, Evet/Hayır gibi ikili sınıflandırma olabilir veya sayısal bir varlık olabilir) satırlar ve sütunlar halinde düzenlenmiş verilerimiz vardır. Makine Öğrenimi algoritmalarını işlemeyi bildiğimiz için, veriler matematiksel formlara beslenmelidir. Makine Öğrenimi algoritması yalnızca sayısal rakamları anlayacağından, siyah ve beyaz resimler aynı şekilde ele alınabileceğinden, bir tablo doğal olarak her satırın (örnek) veya sütunun (Özellik) 2 boyutlu vektörler olarak öğretilebildiği 1 boyutlu bir matrise benzer. 2 ve 0 sayılarını içeren ve görüntü sınıflandırması veya bölümleme için bir sinir ağına beslenen 1 boyutlu bir matris.

Dizi verileri veya Zaman serisi verileri, 2 boyutlu verilerde bir boyutun (zamanın) sabitlendiği başka bir örnektir. Örneğin:

1. İzleme makinelerinde ekg verileri.

2. Bir borsa fiyatı izleme veri akışı.

Bunlar, Klasik Makine Öğrenimi (Lineer Regresyon, Karar Ağacı, Destek Vektör Makinesi, Rastgele Orman, Lojistik Regresyon vb.) ve Derin Öğrenme algoritmalarında 2-B tensörlerin kullanımına örneklerdir.

Renkli veya Gri tonlamalı bir görüntü, 3 boyutlu bir tensör olarak kabul edilecektir. 3 boyutlu (veya 3. dereceli bir tensör) tensör, bunun gibi bir dizi veya küptür.

Pytorch tensörleri

3 boyutlu bir tensörde her Piksel, Kırmızı-Yeşil-Mavi'de (RGB matrisi) yoğunlukları temsil eden 3 sayıdan oluşan bir vektör olan 'renk kanalları' ile ilişkilendirilir. Bir Piksel genellikle tek bir baytın sınırları içinde sıralı Kırmızı, Yeşil ve mavi miktarına göre renklendirilir. Bu 0 – 255 değer dizileri, tamsayılar için [255,255,255] gibi görünecektir. Tensörümüz int32 veri tipi olduğunda kullanılan yorumlama yöntemi bu, tensörümüz float32 veri tipi olduğunda ilişkilendirilen değerin 0-1 aralığında olduğu varsayılacaktır. Yani [255,255,255] tamsayı saf beyazı temsil edecek, ancak floatta saf beyaz için [1,1,1] olarak temsil edilecektir.

Bu, görüntüleri depolamak için bir 3D tensörün gerekli olduğu anlamına gelir. Her üç değerli piksel, belirtilen genişlik ve yükseklikte kaydedilmelidir. Tic-tac-toe bulmacasında yaptığınız gibi, hangi formatın en iyi kullanılacağına karar vermeniz gerekecek. Bir tensörün son boyutunda RGB değerlerini kaydetmek TensorFlow ve TensorFlow.js'de standart prosedürdür. Ayrıca, yükseklik, genişlik ve renk boyutları için değerlerin bu sırada saklanması yaygın bir uygulamadır. Adresleme satırları ve ardından sütunlar, matrisler için geleneksel organizasyonel referans dizisi olsa da, bu fotoğraflar için tuhaf görünebilir.

Benzer şekilde video, bir dizi renkli görüntü veya zaman içinde bir çerçeve olarak düşünülebilir ve video, 4 boyutlu tensörler olarak öğretilebilir.

Başka bir deyişle, çok boyutlu tensörler, sensör ve enstrüman verileri, ticari ve finansal veriler ve bilimsel veya sosyal deneylerden elde edilen veriler dahil olmak üzere fiziksel dünyadan çeşitli türdeki verileri kolayca temsil edebilir ve bu verileri, makine öğrenimi/DL algoritmaları tarafından işlenmeye uygun hale getirir. bir bilgisayar.

Sonuç

Pytorch, Python'da yazılmış bir Makine Öğrenimi çerçevesidir. Torch-vision ve bilgisayar görüşü için Timm gibi çeşitli Python kitaplıkları, PyTorch'un üzerine inşa edilmiştir. Önceden oluşturulmuş birçok derin öğrenme modeline erişebilir. Pytorch, uygulamanızda/bulutunuzda verileri önceden işleyebilir, verileri modelleyebilir ve modelleri dağıtabilir. Tensör, Pytorch'un temel bir yapı taşıdır ve temelde bir Numpy dizisiyle aynıdır. Çoğunlukla Görüntüleri, Sesi bilgisayar işleme için kullanılan matematiksel bir forma dönüştürmek için kullanılır. Renkli veya Gri Tonlamalı bir görüntü, 3 boyutlu tensör olarak kabul edilir ve bir video, 4 boyutlu Tensör olarak kabul edilir.

Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır. 

spot_img

En Son İstihbarat

spot_img