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.