Jak korzystać z „torch.no_grad” w PyTorch?

Jak Korzystac Z Torch No Grad W Pytorch



Obliczanie gradientów dla warstw sieci neuronowej jest wbudowaną funkcją platformy PyTorch. Użytkownicy mogą ocenić połączenie między sąsiednimi warstwami, obliczając gradienty podczas przejścia wstecz. Jednakże powoduje to obciążenie sprzętu ze względu na duże ilości danych, które muszą zostać przetworzone, a w tym przypadku „ latarka.no_grad ” można zastosować do zatrzymania obliczeń gradientu tam, gdzie jest to konieczne.

Na tym blogu omówimy, jak korzystać z „ latarka.no_grad ” w PyTorch.

Jaka jest metoda „torch.no_grad” w PyTorch?

latarka.no_grad ” służy do zarządzania kontekstem w środowisku programistycznym PyTorch. Jego celem jest zatrzymanie obliczania gradientów dla połączenia pomiędzy kolejnymi warstwami modelu głębokiego uczenia się. Przydatność tej metody polega na tym, że gdy w danym modelu gradienty nie są wymagane, można je wyłączyć, aby przydzielić więcej zasobów sprzętowych do przetwarzania pętli szkoleniowej modelu.







Jak korzystać z metody „torch.no_grad” w PyTorch?

Gradienty są obliczane w ramach przejścia wstecz w PyTorch. Domyślnie PyTorch ma włączone automatyczne różnicowanie dla wszystkich modeli uczenia maszynowego. Wyłączenie obliczeń gradientowych jest niezbędne dla programistów, którzy nie mają wystarczających zasobów obliczeniowych sprzętu.



Wykonaj poniższe czynności, aby dowiedzieć się, jak korzystać z „ latarka.no_grad ”, aby wyłączyć obliczanie gradientów w PyTorch:







Krok 1: Uruchom Colab IDE

Google Colaboratory to doskonały wybór platformy do tworzenia projektów z wykorzystaniem frameworka PyTorch ze względu na dedykowane procesory graficzne. Idź do Colaba strona internetowa i otwórz „ Nowy notatnik ' jak pokazano:



Krok 2: Zainstaluj i zaimportuj bibliotekę Torch

Cała funkcjonalność PyTorch jest zawarta w „ latarka ' biblioteka. Jego instalacja i import są niezbędne przed rozpoczęciem pracy. „ !pypeć ” pakiet instalacyjny Pythona służy do instalowania bibliotek i jest importowany do projektu za pomocą „ import ' Komenda:

!pip zainstaluj latarkę
importuj pochodnię

Krok 3: Zdefiniuj tensor PyTorch za pomocą gradientu

Dodaj tensor PyTorch do projektu za pomocą „ tensor palnika() ' metoda. Następnie nadaj mu prawidłowy gradient za pomocą „ wymaga_grad=Prawda ”, jak pokazano w poniższym kodzie:

A = palnik.tensor([5.0], require_grad=True)

Krok 4: Użyj metody „torch.no_grad”, aby usunąć gradient

Następnie usuń gradient z wcześniej zdefiniowanego tensora za pomocą „ latarka.no_grad ' metoda:

z latarką.no_grad():
B = A**2 + 16

Powyższy kod działa w następujący sposób:

  • no_grad() ” metoda jest stosowana wewnątrz „ z ' pętla.
  • Każdy tensor zawarty w pętli ma usunięty gradient.
  • Na koniec zdefiniuj przykładowe obliczenie arytmetyczne przy użyciu wcześniej zdefiniowanego tensora i przypisz je do „ B ” zmienna, jak pokazano powyżej:

Krok 5: Sprawdź usunięcie gradientu

Ostatnim krokiem jest sprawdzenie, co właśnie zostało zrobione. Gradient od tensora „ A ” został usunięty i należy to sprawdzić na wyjściu za pomocą „ wydrukować() ' metoda:

print('Obliczenia gradientu za pomocą torch.no_grad: ', A.grad)
print('\nOryginalny tensor: ', A)
print('\nPrzykładowe obliczenie arytmetyczne: ', B)

Powyższy kod działa w następujący sposób:

  • absolwent ” metoda daje nam gradient tensora „ A ”. Nie pokazuje żadnego na poniższym wyjściu, ponieważ gradient został usunięty za pomocą „ latarka.no_grad ' metoda.
  • Oryginalny tensor nadal pokazuje, że ma swój gradient, jak wynika z „ wymaga_grad=Prawda ” instrukcja na wyjściu.
  • Na koniec przykładowe obliczenia arytmetyczne pokazują wynik wcześniej zdefiniowanego równania:

Notatka : tutaj możesz uzyskać dostęp do naszego Notatnika Colab połączyć .

Wskazówka profesjonalna

latarka.no_grad ” metoda jest idealna tam, gdzie gradienty nie są potrzebne lub gdy istnieje potrzeba zmniejszenia obciążenia obliczeniowego sprzętu. Innym zastosowaniem tej metody jest wnioskowanie, ponieważ model służy wyłącznie do tworzenia prognoz na podstawie nowych danych. Ponieważ nie wymaga to żadnego szkolenia, wyłączenie obliczania gradientów ma sens.

Powodzenie! Pokazaliśmy, jak używać metody „torch.no_grad” do wyłączania gradientów w PyTorch.

Wniosek

Użyj ' latarka.no_grad ” w PyTorch, definiując ją wewnątrz „ z ” i wszystkie zawarte w niej tensory zostaną usunięte. Przyniesie to poprawę prędkości przetwarzania i zapobiegnie gromadzeniu się gradientów w pętli treningowej. Na tym blogu pokazaliśmy, jak to „ latarka.no_grad ” można zastosować do wyłączenia gradientów wybranych tensorów w PyTorch.