Tensory Pytorcha i ich operacje

Tensory Pytorcha i ich operacje

Węzeł źródłowy: 1988879

Wprowadzenie

Postęp zainteresowania głęboki Learning przytoczona zostanie również eksplozja narzędzi Machine Learning, takich jak TensorFlow, PyTorch itp., które zapewnią łatwość obsługi i łatwe debugowanie kodów.

Wiele popularnych frameworków, takich jak MxNet, Tensorflow, Jax, PaddlePaddle, Caffe 2, Mindspore i Theano, zyska popularność, ponieważ stworzą statyczny wykres przepływu danych, który reprezentuje obliczenia i który można zastosować do partii danych. Chociaż zapewnią wgląd w całe obliczenia i teoretycznie, są one wykorzystywane z lepszą wydajnością i skalowalnością. Odbędzie się to kosztem elastyczności, łatwości debugowania i łatwości użytkowania.

Ten artykuł zawiera szczegółowe informacje na temat Pytorch, który jest platformą uczenia maszynowego napisaną w języku Python. Ponieważ większość platform Deep Learning koncentruje się na użyteczności lub szybkości, Pytorch pokazuje, że te dwa cele są kompatybilne: jest zaprojektowany do obsługi imperatywnego i Pythonowego stylu programowania, który będzie obsługiwał kody jako modele, co ułatwia debugowanie i pozostanie wydajny i wspiera narzędzia akceleratorów sprzętowych, takie jak GPU (Graphic Processing Unit) i TPU (Tensor Processing Units).

Na bazie PyTorch zbudowano kilka bibliotek Pythona, takich jak torch-vision, Timm do widzenia komputerowego, torch text i przytulanie twarzy do tekstu oraz torch audio do mowy, które dają PyTorch moc.

Ten artykuł został opublikowany jako część Blogathon nauki o danych.

Spis treści

Dlaczego Pytorch?

  • Jest to najpopularniejszy framework do głębokiego uczenia się w badaniach.
  • Dostęp do wielu gotowych modeli głębokiego uczenia (Torch Hub/torch-vision.models).
  • Cały stos: wstępne przetwarzanie danych, modelowanie danych, wdrażanie modelu w aplikacji/chmurze.
  • Pierwotnie zaprojektowany i używany przez Facebook/Meta (obecnie open source i używany przez firmy takie jak Tesla, Microsoft i Open AI).
  • PyTorch minimalizuje obciążenie poznawcze, koncentrując się na elastyczności i szybkości.
  • Od momentu wydania PyTorch na początku 2017 roku, zyska popularność.

Rosnące trendy Pytorch od czasu jego uruchomienia.

pytorch

napinacz

Tensor jest podstawowym budulcem Pytorcha i jest w zasadzie taki sam jak a Tablica numeryczna. Jest używany głównie do konwersji obrazów, dźwięku na postać matematyczną używaną do przetwarzania, ponieważ komputery nie rozumieją obrazów, ale standardowe liczby. Dlatego ważne jest, aby konwertować obrazy do postaci liczbowych.

Jedną z ważnych cech oferowanych przez tensory jest to, że mogą przechowywać ślady wszystkich operacji na nich wykonanych, co pomaga obliczyć zoptymalizowany wynik; można to zrobić za pomocą funkcji Autograd tensora.

Upraszczając, skaler – wektor – macierze – tensor jako przepływ

1. Skaler jest wektorem 0-wymiarowym.

2. Wektor jest wektorem jednowymiarowym.

3. Macierze to wektory dwuwymiarowe.

4. Tensory to uogólnione tensory N-wymiarowe.

Tensory Pytorcha

Przypadki użycia tensora

Pytorch to wbudowany Google Collab, teraz przyjrzymy się, jak używać jego podstawowych kodów do pracy z Pytorch Tensors.

1. Importowanie Pytorcha i pobieranie jego wersji.

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

2. Tworzenie skalera w Pytorch.

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

3. Tworzenie tensora w Pytorch.

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

4. Aby uzyskać wymiary w Torch, możemy użyć:

vector.ndim
# output
1

5. Aby uzyskać kształt wektora w Torch.

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

6. Za zdobycie matrycy w Pytorch.

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

7. Za tworzenie liczb losowych w Pytorch.

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

8. Implementuj wbudowane funkcje, takie jak mnożenie, dodawanie i odejmowanie w tensorze.

9. Tworzenie tensora typu float.

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

10. Tworzenie zakresu liczb za pomocą Pytorcha.

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

Dlaczego tensory PyTorch są ważne dla ML i DL?

W problemie z nadzorowanym uczeniem maszynowym mamy dane ułożone w wiersze i kolumny z pewnymi wartościami docelowymi (może to być klasyfikacja binarna, taka jak prawda/fałsz, tak/nie, lub może to być jednostka liczbowa). Jak wiemy, aby przetwarzać algorytmy uczenia maszynowego, dane muszą być wprowadzane do postaci matematycznych. Tabela jest naturalnie podobna do macierzy 2-D, w której każdy wiersz (instancja) lub kolumna (cecha) może być nauczany jako wektory 1-D, ponieważ algorytm uczenia maszynowego będzie rozumiał tylko cyfry, a czarno-białe obrazy można traktować jako dwuwymiarowa macierz zawierająca liczby 2 i 0 i wprowadzana do sieci neuronowej w celu klasyfikacji lub segmentacji obrazu.

Dane sekwencji lub dane szeregów czasowych to kolejny przykład, w którym w danych 2-D jeden wymiar (czas) jest ustalony. Na przykład:

1. Dane EKG w maszynach monitorujących.

2. Strumień danych śledzenia cen giełdowych.

Są to przykłady wykorzystania tensorów 2-D w klasycznym uczeniu maszynowym (regresja liniowa, drzewo decyzyjne, maszyna wektorów nośnych, losowy las, regresja logistyczna itp.) i algorytmach głębokiego uczenia.

Obraz kolorowy lub w skali szarości będzie uważany za tensor 3-D. Tensor 3-D (lub tensor rangi 3) to sześcian lub tablica takich tablic.

Tensory Pytorcha

W trójwymiarowym tensorze każdy piksel jest powiązany z „kanałami koloru” – wektorem składającym się z 3 liczb reprezentujących intensywność w układzie czerwono-zielono-niebieskim (macierz RGB). Piksel jest zwykle kolorowany przez uporządkowaną ilość koloru czerwonego, zielonego i niebieskiego w granicach pojedynczego bajtu. Te tablice wartości od 3 do 0 będą wyglądać jak [255] dla liczb całkowitych. Gdy nasz tensor jest typem danych int255,255,255, jest to używana metoda interpretacji, a gdy nasz tensor jest typem danych float32, zakłada się, że powiązana wartość mieści się w zakresie 32-0. Tak więc liczba całkowita [1] będzie reprezentować czystą biel, ale w przypadku liczby zmiennoprzecinkowej będzie reprezentowana jako [255,255,255] dla czystej bieli.

Oznacza to, że do przechowywania obrazów wymagany jest tensor 3D. Każdy piksel trójwartościowy musi zostać zapisany z określoną szerokością i wysokością. Musisz zdecydować, jakiego formatu najlepiej użyć, tak jak w przypadku układanki z kółkiem i krzyżykiem. Standardową procedurą w TensorFlow i TensorFlow.js jest zapisywanie wartości RGB w końcowym wymiarze tensora. Ponadto powszechne jest przechowywanie wartości wysokości, szerokości i wymiarów koloru w tej kolejności. Chociaż adresowanie wierszy, a następnie kolumn to tradycyjna organizacyjna sekwencja odniesienia dla macierzy, może się to wydawać dziwne w przypadku zdjęć.

Podobnie wideo można traktować jako sekwencję kolorowych obrazów lub klatkę w czasie, a wideo można uczyć jako tensory 4-D.

Innymi słowy, wielowymiarowe tensory mogą z łatwością reprezentować różne rodzaje danych ze świata fizycznego, w tym dane z czujników i przyrządów, dane handlowe i finansowe oraz dane z eksperymentów naukowych lub społecznych, dzięki czemu nadają się do przetwarzania przez algorytmy ML/DL wewnątrz komputer.

Wnioski

Pytorch to platforma uczenia maszynowego napisana w języku Python. Kilka bibliotek Pythona, takich jak torch-vision i Timm dla wizji komputerowej, jest zbudowanych na bazie PyTorch. Jest w stanie uzyskać dostęp do wielu gotowych modeli głębokiego uczenia się. Pytorch może wstępnie przetwarzać dane, modelować dane i wdrażać modele w Twojej aplikacji/chmurze. Tensor jest podstawowym elementem budulcowym Pytorch i jest w zasadzie taki sam jak tablica Numpy. Jest używany głównie do konwersji obrazów, dźwięku na formę matematyczną używaną do przetwarzania komputerowego. Obraz kolorowy lub w skali szarości będzie traktowany jako tensor 3-D, a wideo jako tensor 4-D.

Media pokazane w tym artykule nie są własnością Analytics Vidhya i są wykorzystywane według uznania Autora. 

Znak czasu:

Więcej z Analityka Widhja