PyTorch to platforma do głębokiego uczenia, która implementuje dynamiczny wykres obliczeniowy, który umożliwia zmianę sposobu, w jaki zachowuje się sieć neuronowa w locie i umożliwia wykonywanie wstecznego automatycznego różnicowania.
Szukałem alternatywnych sposobów zapisania wytrenowanego modelu w PyTorch. Jak dotąd znalazłem dwie alternatywy. torch.save (), aby zapisać model i torch.load (), aby załadować model. model.state_dict (), aby zapisać wytrenowany model i model.load_state_dict (), aby załadować zapisany model. Natknąłem się na tę dyskusję, w której podejście 2 jest zalecane zamiast podejścia …
Chciałbym wiedzieć, czy pytorchużywa mojego GPU. Można wykryć, nvidia-smiczy w trakcie procesu występuje jakakolwiek aktywność GPU, ale chcę, aby coś było napisane w pythonskrypcie. Czy jest na to sposób?
Czy jest jakiś sposób, żebym mógł wydrukować podsumowanie modelu w PyTorch, podobnie jak model.summary()metoda w Kerasie w następujący sposób? Model Summary: ____________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ==================================================================================================== input_1 (InputLayer) (None, 1, 15, 27) 0 ____________________________________________________________________________________________________ convolution2d_1 (Convolution2D) (None, 8, 15, 27) 872 input_1[0][0] ____________________________________________________________________________________________________ maxpooling2d_1 (MaxPooling2D) …
Metodę zero_grad()należy wywołać podczas treningu. Ale dokumentacja nie jest zbyt pomocna | zero_grad(self) | Sets gradients of all model parameters to zero. Dlaczego musimy wywołać tę metodę?
Czytam dokumentację PyTorch i znalazłem przykład, na którym piszą gradients = torch.FloatTensor([0.1, 1.0, 0.0001]) y.backward(gradients) print(x.grad) gdzie x było początkową zmienną, z której skonstruowano y (3-wektor). Pytanie brzmi, jakie są argumenty 0,1, 1,0 i 0,0001 tensora gradientu? Dokumentacja nie jest w tym zbyt jasna.
Próbowałem powtórzyć Jak używać pakowania dla danych wejściowych sekwencji o zmiennej długości dla rnn, ale myślę, że najpierw muszę zrozumieć, dlaczego musimy „spakować” sekwencję. Rozumiem, dlaczego musimy je „wypełniać”, ale dlaczego konieczne jest „pakowanie” (przez pack_padded_sequence)? Wszelkie wyjaśnienia na wysokim poziomie będą mile widziane!
W numpy używamy ndarray.reshape()do przekształcania tablicy. Zauważyłem, że w pytorchu ludzie używają torch.view(...)do tego samego celu, ale jednocześnie jest też taki torch.reshape(...)istniejący. Zastanawiam się więc, jakie są między nimi różnice i kiedy powinienem użyć któregokolwiek z nich?
Przeglądałem ten przykład modelu języka LSTM na github (link) . Ogólnie rzecz biorąc, jest dla mnie całkiem jasne. Ale wciąż staram się zrozumieć, co contiguous()robi wywołanie , co występuje kilka razy w kodzie. Na przykład w linii 74/75 kodu wejściowego i sekwencji docelowej LSTM są tworzone. Dane (przechowywane w ids) …
Próbuję zaktualizować / zmienić parametry modelu sieci neuronowej, a następnie przekazać do przodu zaktualizowaną sieć neuronową na wykresie obliczeniowym (bez względu na to, ile zmian / aktualizacji dokonamy). Wypróbowałem ten pomysł, ale za każdym razem, gdy to robię, pytorch ustawia moje zaktualizowane tensory (wewnątrz modelu) na liście, co zabija przepływ …
Próbuję wyszkolić następujący CNN w następujący sposób, ale wciąż pojawia się ten sam błąd dotyczący .cuda () i nie jestem pewien, jak to naprawić. Oto fragment mojego kodu do tej pory. import matplotlib.pyplot as plt import numpy as np import torch from torch import nn from torch import optim import …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.