Podstawową strukturą danych jest torch.Tensor, reprezentujący wartości skalarne oraz tablice jedno- i wielowymiarowe. Tensory służą do przechowywania danych wejściowych, wyników obliczeń i parametrów modeli. Ich właściwości określają między innymi rozmiary poszczególnych osi, typ danych oraz urządzenie, w którego pamięci znajdują się dane.
Biblioteka udostępnia operacje arytmetyczne, mnożenie macierzy, zmianę kształtu tablic i inne procedury algebry liniowej. Zapewnia także współpracę z NumPy; w odpowiednich warunkach tablica NumPy i tensor przechowywany w pamięci procesora centralnego mogą współdzielić ten sam obszar pamięci.
Różniczkowanie automatyczne
Mechanizm torch.autograd wyznacza gradienty obliczeń złożonych z obsługiwanych operacji. W trybie różniczkowania odwrotnego rejestruje zależności między operacjami, a następnie przechodzi przez utworzony graf w kierunku przeciwnym do przebiegu obliczeń. Pochodne poszczególnych operacji są składane zgodnie z regułą łańcuchową.
W standardowym trybie wykonania, określanym jako eager execution, graf różniczkowania jest odtwarzany podczas kolejnych przebiegów programu. Dzięki temu instrukcje warunkowe i pętle Pythona mogą zmieniać strukturę wykonywanych obliczeń zależnie od danych.
Interfejs C++