Przejdź do treści

PyTorch

logo pytorch

Wprowadzenie

Pytorch to wysokopoziomowa biblioteka do rozwiązań deep learningowych, stworzona oryginalnie przez Meta, a obecnie stanowiąca część Linux Foundation. Powstała na bazie biblioteki Torch, która już nie jest rozwijana. Z założenia, Pytorch jest nastawiony na modułowość i programowanie obiektowe. Udostępnia również rozwiązania niskopoziomowe do pracy z sieciami neuronowymi.

Dostępność

Biblioteka jest dostępna dla języków Python, C++ oraz Java. Pytorch oferuje przystępne narzędzia do tworzenia modeli uczenia głębokiego (deep learning) i obliczeń tensorowych ze wsparciem akceleracji obliczeń zarówno dla CPU, jak i GPU.

Szczegóły

Pytorch wykorzystuje dwa główne mechanizmy: autograd (automatyczne różniczkowanie) oraz dynamiczne grafy obliczeniowe do wykonywania operacji na tensorach. W porównaniu do innych frameworków, umożliwia dużą swobodę w definiowaniu operacji, jakie zachodzą w trakcie obliczeń w sieciach neuronowych. Dzięki temu użytkownik może krok po kroku kontrolować zachowania modułów i funkcji.

Pytorch zapewnia także API wysokopoziomowe, które pozwala na proste tworzenie warstw i innych powszechnie używanych elementów sieci neuronowych. Pytorch wykorzystuje połączenie nisko- i wysokopoziomowych możliwości oraz łatwości debugowania dynamicznych grafów. Dzięki temu świetnie nadaje się do tworzenia własnych, nieszablonowych rozwiązań (np. w pracy naukowej).

Zrównoleglanie obliczeń na poziomie jednego i wielu węzłów możliwe jest dzięki modułowi torch.distributed. Moduł wspiera trzy domyślne backendy do obliczeń rozproszonych (gloo, mpi oraz nccl), oraz umożliwia tworzenie własnych. Opis operacji i urządzeń obsługiwanych przez dany backend dostępny jest w dokumentacji. Przy implementacji zrównoleglenia obliczeń w Pytorchu można (i zaleca się) zastosowanie dodatkowej biblioteki, Lightning, która jest wrapperem Pytorcha.

Informacje o wydaniu

Obecna wersja to 2.0, wydana w marcu 2023 roku. API jest stabilne, a w przypadku wycofywania funkcjonalności twórcy z reguły utrzymują kompatybilność jeszcze przez kilka następnych wersji. Kod źródłowy jest dostępny publicznie. Kolejne wersje i rozszerzenia obecnych pojawiają się co kilka miesięcy.

Linki


Ostatnia aktualizacja: 9 kwietnia 2024