Zephyrnet-logo

Pytorch Tensors en zijn operaties

Datum:

Introductie

De opkomst van interesse in Diepe leren in de afgelopen jaren en de explosie van Machine Learning-tools zoals TensorFlow, PyTorch, enz., zullen ook worden genoemd, wat gebruiksgemak en eenvoudige foutopsporing van codes zal bieden.

Veel populaire frameworks zoals MxNet, Tensorflow, Jax, PaddlePaddle, Caffe 2, Mindspore en Theano zullen aan populariteit winnen omdat ze een statische dataflow-grafiek zullen construeren die de berekening weergeeft en die kan worden toegepast op batches data. Hoewel ze inzicht geven in de hele berekening en in theorie, worden ze gebruikt met verbeterde prestaties en schaalbaarheid. Dit gaat ten koste van flexibiliteit, het gemak van foutopsporing en gebruiksgemak.

Dit artikel geeft inzicht in Pytorch, een machine learning-framework geschreven in Python. Aangezien de meeste Deep Learning-frameworks ofwel gericht zijn op bruikbaarheid of snelheid, maar Pytorch laat zien dat deze twee doelen compatibel zijn: het is ontworpen om de imperatieve en Pythonische programmeerstijl te ondersteunen, die codes als modellen ondersteunt, wat debuggen eenvoudig maakt, en het zal efficiënt en ondersteunend blijven hulpmiddelen voor hardwareversnellers zoals GPU (Graphic Processing Unit) en TPU (Tensor Processing Units).

Verschillende Python-bibliotheken zijn bovenop PyTorch gebouwd, zoals torch-vision, Timm voor computervisie, torch-tekst en knuffelend gezicht voor tekst, en torch-audio voor spraak, die PyTorch zijn kracht geven.

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Inhoudsopgave

Waarom Pytorch?

  • Het is het meest populaire raamwerk voor deep learning voor onderzoek.
  • In staat om toegang te krijgen tot veel vooraf gebouwde deep learning-modellen (Torch Hub/ torch-vision.models).
  • Hele stapel: gegevens voorbewerken, gegevens modelleren, model implementeren in uw applicatie/cloud.
  • Oorspronkelijk ontworpen en intern gebruikt door Facebook/Meta (nu open source en gebruikt door bedrijven als Tesla, Microsoft en Open AI).
  • PyTorch minimaliseert cognitieve overhead terwijl het zich richt op flexibiliteit en snelheid.
  • Sinds de release van PyTorch begin 2017 zal het aan populariteit winnen.

Toenemende trends van Pytorch sinds de lancering.

pytorch

strekspier

Tensor is een fundamentele bouwsteen van Pytorch en is in wezen hetzelfde als een Numpy-array. Het wordt meestal gebruikt voor het converteren van afbeeldingen en audio naar een wiskundige vorm die wordt gebruikt voor verwerking, aangezien computers geen afbeeldingen begrijpen, maar standaardnummers. Daarom is het belangrijk om afbeeldingen om te zetten in numerieke vormen.

Een van de belangrijke functies die door tensoren worden aangeboden, is dat ze alle bewerkingen die erop zijn uitgevoerd, kunnen bijhouden, wat helpt bij het berekenen van de geoptimaliseerde output; dit kan worden gedaan door de Autograd-functionaliteit van een tensor te gebruiken.

In simplistische termen, scaler - vector - matrices - tensor als stroom

1. Scaler is een 0-dimensionale vector.

2. Vector is een 1-dimensionale vector.

3. Matrices zijn tweedimensionale vectoren.

4. Tensoren zijn gegeneraliseerde N-dimensionale tensoren.

Pytorch tensoren

Gebruiksgevallen van Tensor

Pytorch is een ingebouwde Google Collab, nu kijken we hoe we de basiscodes kunnen gebruiken om aan Pytorch Tensors te werken.

1. Pytorch importeren en zijn versie ophalen.

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

2. Een scaler maken in Pytorch.

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

3. Een tensor maken in Pytorch.

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

4. Om de afmetingen in Torch te krijgen, kunnen we gebruiken:

vector.ndim
# output
1

5. Om de vorm van een vector te krijgen in Torch.

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

6. Voor het verkrijgen van de matrix in Pytorch.

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

7. Voor het maken van willekeurige getallen in Pytorch.

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

8. Implementeer ingebouwde functies zoals vermenigvuldigen, optellen en aftrekken in tensor.

9. Een zwevende tensor maken.

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

10. Een getallenreeks maken met behulp van Pytorch.

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

Waarom zijn PyTorch-tensoren belangrijk voor ML en DL?

Bij een machine learning-probleem onder toezicht hebben we gegevens gerangschikt in rijen en kolommen met een aantal doelwaarden (het kan een binaire classificatie zijn zoals Waar/Onwaar, Ja/Nee, of het kan een numerieke entiteit zijn). Zoals we weten om machine learning-algoritmen te verwerken, moeten de gegevens in wiskundige vormen worden ingevoerd. Een tabel is natuurlijk vergelijkbaar met een 2D-matrix waarin elke rij (instantie) of kolom (Feature) kan worden aangeleerd als 1-D-vectoren, aangezien het Machine Learning-algoritme alleen numerieke cijfers begrijpt, zwart-witafbeeldingen kunnen worden behandeld als een 2D-matrix met de nummers 0 en 1 en ingevoerd in een neuraal netwerk voor beeldclassificatie of segmentatie.

Volgordegegevens of tijdreeksgegevens zijn een ander voorbeeld waarbij in 2D-gegevens één dimensie (tijd) vastligt. Bijvoorbeeld:

1. Ecg-gegevens in bewakingsmachines.

2. Een gegevensstroom voor het volgen van beurskoersen.

Dit zijn voorbeelden van het gebruik van 2D-tensoren in klassiek machinaal leren (lineaire regressie, beslissingsboom, ondersteuningsvectormachine, willekeurig bos, logistische regressie, enz.) en algoritmen voor diep leren.

Een afbeelding in kleur of grijswaarden wordt beschouwd als een 3D-tensor. Een 3-D (of een rang 3 tensor) tensor is een kubus of een array van arrays zoals deze.

Pytorch tensoren

In een 3D-tensor wordt elke pixel geassocieerd met 'kleurkanalen' - een vector van 3 getallen die intensiteiten vertegenwoordigen in rood-groen-blauw (RGB-matrix). Een pixel wordt gewoonlijk gekleurd door de bestelde hoeveelheid rood, groen en blauw binnen de grenzen van een enkele byte. Deze 0 - 255 arrays met waarde zien eruit als [255,255,255] voor gehele getallen. Als onze tensor het gegevenstype int32 is, is dit de interpretatiemethode die wordt gebruikt, en als onze tensor het gegevenstype float32 is, wordt aangenomen dat de bijbehorende waarde in het bereik van 0-1 ligt. Een geheel getal [255,255,255] vertegenwoordigt dus puur wit, maar in float wordt het weergegeven als [1,1,1] voor puur wit.

Dit impliceert dat een 3D-tensor vereist is om afbeeldingen op te slaan. Elke pixel met drie waarden moet worden opgeslagen met de opgegeven breedte en hoogte. U moet beslissen welk formaat u het beste kunt gebruiken, net zoals u deed met de boter-kaas-en-eieren-puzzel. Het is een standaardprocedure in TensorFlow en TensorFlow.js om de RGB-waarden op te slaan in de uiteindelijke dimensie van een tensor. Bovendien is het gebruikelijk om de waarden voor de hoogte-, breedte- en kleurdimensies in die volgorde op te slaan. Hoewel het adresseren van rijen en vervolgens kolommen de traditionele organisatorische referentievolgorde is voor matrices, kan dit vreemd lijken voor foto's.

Evenzo kan video worden gezien als een opeenvolging van kleurenbeelden of een frame in de tijd, en kan video worden aangeleerd als 4D-tensoren.

Met andere woorden, multidimensionale tensoren kunnen gemakkelijk verschillende soorten gegevens uit de fysieke wereld vertegenwoordigen, waaronder sensor- en instrumentgegevens, commerciële en financiële gegevens en gegevens van wetenschappelijke of sociale experimenten, waardoor ze geschikt zijn voor verwerking door ML/DL-algoritmen binnen een computer.

Conclusie

Pytorch is een machine learning-framework geschreven in Python. Verschillende Python-bibliotheken, zoals torch-vision en Timm voor computervisie, zijn bovenop PyTorch gebouwd. Het heeft toegang tot veel vooraf gebouwde deep learning-modellen. Pytorch kan gegevens voorbewerken, gegevens modelleren en modellen implementeren in uw applicatie/cloud. Tensor is een fundamentele bouwsteen van Pytorch en is in wezen hetzelfde als een Numpy-array. Het wordt meestal gebruikt voor het converteren van afbeeldingen en audio naar een wiskundige vorm die wordt gebruikt voor computerverwerking. Een afbeelding in kleur of grijswaarden wordt beschouwd als een 3D-tensor en een video wordt beschouwd als een 4-D-tensor.

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt. 

spot_img

Laatste intelligentie

spot_img