Biblioteka ATen stanowi podstawę operacji tensorowych. Interfejs C++ uzupełnia ją o różniczkowanie automatyczne, moduły sieci neuronowych, algorytmy optymalizacji i obsługę danych. PyTorch umożliwia również tworzenie własnych operacji w C++ i z wykorzystaniem CUDA, a następnie udostępnianie ich programom napisanym w Pythonie.

Budowa i uczenie modeli

Modele sieci neuronowych definiuje się zazwyczaj za pomocą klas dziedziczących po torch.nn.Module. Moduł może zawierać warstwy i parametry modelu, natomiast metoda forward określa przebieg obliczeń. Podczas uczenia funkcja straty służy do oceny wyniku, mechanizm różniczkowania wyznacza gradienty, a algorytm optymalizacji aktualizuje parametry.

+ Wybrane składniki PyTorch Składnik Zastosowanie torch Tensory i podstawowe operacje numeryczne. torch.autograd Automatyczne wyznaczanie pochodnych. torch.nn Moduły i warstwy sieci neuronowych oraz funkcje straty. torch.optim Algorytmy aktualizacji parametrów modelu. torch.utils.data.Dataset Interfejs udostępniający przykłady ze zbioru danych. torch.utils.data.DataLoader Odczyt danych, grupowanie przykładów i obsługa ich dostarczania do modelu.

Kompilacja i optymalizacja