Co to jest Pytorch?
Pytorch to głębokie ramy uczenia się na otwartym poziomie do budowy architektur sieciowych i innych technik wysokiego poziomu, takich jak RNN, CNN i LSTM. Jest używany przez badaczy, firmy i społeczności ML i AI.
Grupa badań sztucznej inteligencji na Facebooku jest głównie odpowiedzialna za jego rozwój.
Czym jest tensor (podejście oparte na matematyce)?
Wywierać siłę na powierzchnię i obserwuj, jak się odchyla w różnych kierunkach. Możesz spodziewać się, że porusza się w tym samym kierunku co siła, ale nie zawsze tak się dzieje; Powodem tego jest to, że materiał nie jest jednolity we wszystkich kierunkach; może mieć pewną strukturę, taką jak kryształ lub warstwy. Siła, która jest wektorem, jest twoim punktem wyjścia. (Kierunki X, Y i Z mają trzy elementy.) Otrzymujesz wektor ugięcia (ruch w x, y i z). Siła jest jednak w odwrotnym kierunku od ruchu! Udawajmy, że odpowiedź jest proporcjonalna do siły, co oznacza podwojenie siły dwukrotnie więcej niż ruch. Nazywa się to „reakcją liniową."
Jak możesz to wszystko umieścić w terminach matematycznych? Oczywiście z tensorem. Rozważ tensor za instrument matematyczny, który przyjmuje wektor (taki jak siła) i zwraca nowy wektor (ruch). TENSORY są wymagane tylko wtedy, gdy dwa wektory wskazują w przeciwnych kierunkach.
Iteracje, partie, epoc. Czym są pod względem sieci neuronowych?
Liczba iteracji (oznaczona przez N tutaj) jest liczba razy, gdy partia instancji szkolenia szacuje gradient i aktualizuje parametry sieci neuronowej.
Rozmiar partii B odnosi się do liczby instancji szkoleniowych zatrudnionych w jednej iteracji. Jest to zwykle stosowane, gdy liczba instancji treningowych jest dość duża i zwykle skuteczne jest dzielenie całych danych na mini partię. Każda partia ma rozmiar: 1< B < N.
Aby użyć pełnych danych szkoleniowych raz, wymaga N (N/B) Iteracje. Taki jest epoka. Więc (N/B)*mi, Gdzie mi jest liczbą epok, to całkowita liczba razy zmieniono parametry.
Istnieją trzy rodzaje pochodzenia gradientu. Istnieje między nimi kompromis, ponieważ można zapewnić dobrą dokładność, ale jest powolne. Z drugiej strony jeden jest szybszy, ale nie gwarantuje dobrej dokładności:
N = B, jedna epoka równa się jednej iteracji w trybie wsadowym.
Tryb mini: 1 < B < N, with N/B iterations per epoch.
B = 1, jedna epoka przyjmuje N iteracji w stochastycznym modelu zejścia gradientu.
Wdrażanie danych DataLoader na zestawie danych mody mnist
Ładowanie zestawu danych MNIST z Pytorch
Fashion-MNIST to zestaw danych obrazu, który obejmuje 60 000 szkoleń i 10 000 instancji testowych. Każdy przykład zawiera obraz w skali szarości 28 x 28 z etykietą z jednej z dziesięciu kategorii. Poniżej znajdują się kilka parametrów, które zaspokajasz podczas ładowania zestawu danych.
źródło: To jest katalog, w którym zapisano zestaw danych.
pociąg: wskazuje, że należy załadować wyszkolone lub przetestowane dane.
pobierać: Jeśli dane nie są dostępne w root, są pobierane przez Internet.
Transform i Target_Transform: Te parametry określają transformacje funkcji i etykiety.
Importuj pochodnięZwyczaj Zestaw danych twoich plików
ImportosW powyższym kodzie widzimy trzy ważne metody:
__w tym__: Ta funkcja jest wywoływana po tworzeniu obiektu zestawu danych. Zarówno transformacje, jak i katalog zawierający obrazy i plik adnotacji, są konfigurowane.
__len__: Ta funkcja zwraca długość zestawu danych lub liczbę próbek w zestawie danych.
__Zdobądź przedmiot__: Ta metoda daje nam próbkę obecną na indeksie.
Szkolenie z dataloader
Przechowuj dane do ładowarek danych. Ładowarki danych są iteralne, które pozwalają przepuszczać próbki pojedynczo w momencie treningu, a nawet tasowanie danych po przetworzeniu wszystkich partii.
od pochodni.Utils.Importuj dane DataLoaderIteruj DataSaloader
# Wyświetl obraz i etykieta.Wyjście
Cechy kształt obecnej partii jest pochodni.Rozmiar ([32, 1, 28, 28])
Etykiety kształt aktualnego kształtu partii jest pochodni.Rozmiar ([32])
Etykieta: 5
Każda iteracja w powyższym kodzie zwraca partię funkcji treningowych i etykiet treningowych dla każdej iteracji. Aby uniknąć nadmiernego dopasowania, dane są przetasowane po przetworzeniu wszystkich partii.
Wdrażanie ładowacza danych w niestandardowym zestawie danych
# Importowanie bibliotek, których będziemy korzystaćWyjście
0 Tensor ([0, 4, 9, 15, 14])Wniosek
Przeszliśmy przez wdrożenie DataSoadera Pytorcha, aby zarządzać szkoleniem naszych danych. Teraz zdajemy sobie sprawę, jak łatwo możemy zarządzać partiami, tasować, iterować nasze zestawy danych za pomocą DataSaloader. Pomaga to w lepszej analizie naszych modeli i ostatecznie je poprawić.