Powody, dla których warto wybrać PyTorch do głębokiego uczenia
Głębokie uczenie się i uczenie maszynowe to najpopularniejsze słowa wśród wszystkich od kilku lat i istnieje na to doskonałe wyjaśnienie.
Uczenie maszynowe umożliwiło systemom uczenie się na podstawie doświadczenia, podczas gdy uczenie głębokie przeniosło uczenie maszynowe na jeszcze masową skalę dzięki wykorzystaniu rozległych zbiorów danych. Ten impuls w ML i DL doprowadziły do różnych języków programowania s i bibliotek , które pojawiły się i włączoną programistów , badaczy i naukowców z danymi do osiągnięcia pomyślenia. Jednymi z najsilniejszych pretendentów do najlepszej biblioteki Deep Leaning są TensorFlow i PyTorch . Na razie skupimy się bardziej na PyTorch.
PyTorch
Facebook wypuścił PyTorch dla sceny programistycznej w 2016 roku , który jest oparty na bibliotece Lua's Torch .
PyTorch to bezpłatna biblioteka uczenia maszynowego o otwartym kodzie źródłowym, która jest obecnie w wersji 1.4 . PyTorch jest niedostępny od prawie trzech lat i przeszedł wiele ulepszeń, aby być w lepszej sytuacji. PyTorch został stworzony tak, aby był szybki i bardziej Pythonic niż reszta konkurencji. Obejmuje również obsługę przetwarzania w językach C, C ++ i Tensor .
Trendy Google - zainteresowanie PyTorch w czasie
Powody, dla których warto wybrać PyTorch do głębokiego uczenia
Zanim przejdziemy do powodów, dla których nie warto wypróbować PyTorch, poniżej znajduje się kilka wyjątkowych i ekscytujących projektów i bibliotek Deep Learning, które PyTorch pomógł w stworzeniu:
● CheXNet: wykrywanie zapalenia płuc na poziomie radiologa na zdjęciach RTG klatki piersiowej z głębokim uczeniem się.
● Horizon: Platforma do uczenia się ze wzmocnieniem stosowanym (Applied RL)
● PYRO : Pyro to uniwersalny probabilistyczny język programowania (PPL) napisany w Pythonie i obsługiwany przez PyTorch na zapleczu.
● Kaolin firmy NVIDIA jako biblioteka PyTorch przyspieszająca głębokie uczenie 3D
● TorchCV do wdrażania wizji komputerowej w twoich projektach
● PyDLT jako zestaw narzędzi do głębokiego uczenia się
● biblioteka fastai optymalizuje proces uczenia sieci neuronowej
● i wiele więcej.
Oto kilka frameworków i projektów zbudowanych w oparciu o TensorFlow i PyTorch. Możesz znaleźć więcej na Github i na oficjalnych stronach TF i PyTorch.
W świecie TensorFlow , PyTorch jest w stanie utrzymać się na własną rękę z jego mocnych stron. Poniżej znajdują się niektóre z najważniejszych informacji wyjaśniających, dlaczego PyTorch byłby odpowiednim rozwiązaniem dla projektów Deep Learning:
1. PyTorch jest bardziej Pythonic
PyTorch to framework, który pozwala nam pisać kod w bardziej pythonowy sposób. Co więcej, rodzaj dynamizmu, który obsługuje przy użyciu naiwnego kodu Pythona, jest niezwykły.
PyTorch skłania się bardziej w kierunku Pythona w porównaniu z jakąkolwiek inną biblioteką. Dzieje się tak, ponieważ PyTorch jest stosunkowo łatwy do zrozumienia i wydaje się bardziej naturalny , natywny i zgodny z kodem Pythona .
Każdy, kto pracował z Pythonem, poczuje się jak w domu we wszystkim z PyTorch, takim jak funkcje utraty, optymalizatory, transformacje, programy ładujące dane i wiele innych klas.
Kod każdego przykładu PyTorch (Vision i NLP) ma wspólną strukturę:
2. Łatwy w użyciu
W porównaniu z PyTorch, TensorFlow ma stosunkowo bardziej stromą krzywą uczenia się. Programiści Pythona będą potrzebowali mniej czasu na dostosowanie się do PyTorch, ponieważ dla nich najprawdopodobniej będzie to rozszerzenie frameworka Pythona. Łatwe debugowanie i świetny zestaw prostych API odgrywają kluczową rolę w ułatwianiu programistom korzystania z PyTorch.
3. Przydatne biblioteki
Wielkiemu wsparciu społeczności towarzyszy wielki entuzjazm i wkład w rozwój społeczności. Korzystając z PyTorch, programiści poszli naprzód i stworzyli kilka projektów, które są dostępne dla wszystkich zainteresowanych. Poniżej znajduje się połączona lista kilku tych projektów z różnych dziedzin, takich jak wizja komputerowa , przetwarzanie języka naturalnego i biblioteki generatywne:
● pro_gan_pytorch w celu wykorzystania funkcji ProGAN
● BoTorch do korzystania z optymalizacji Bayesa
● ParlAI do udostępniania, szkolenia i testowania modeli dialogowych
● OpenNMT-py do implementacji neuronowego systemu tłumaczenia maszynowego
● MUSE do wielojęzycznego osadzania słów
● skorch do łączenia kodu scikit-learn z PyTorch
4. Równoległość danych bez wysiłku
Równoległość danych w PyTorch jest wydajna i umożliwia podzielenie danych na partie , które są następnie wysyłane do wielu procesorów graficznych w celu przetworzenia. Korzystając z tej techniki, PyTorch może przenieść znaczną część obciążenia z CPU na GPU. Na potrzeby równoległości danych używa klasy torch.nn.DataParallel.
Distributed Data-Parallel to funkcja PyTorch, którą można łączyć z Data-Parallel, aby obsługiwać przypadki użycia wymagające dużych zbiorów danych i modeli, które są wystarczająco duże dla pojedynczego GPU. Po zakończeniu wszystkich zadań na puli procesorów graficznych wynik jest gromadzony, scalany i wysyłany z powrotem do Ciebie przez Data-Parallel.
5. Doskonały dla naukowców
PyTorch jest bogiem dla naukowców, ponieważ okazało się, że jest używane przez co najmniej 70% badaczy pracujących nad frameworkami. Pomimo tego, że TensorFlow jest wiodącym w branży wyborem do tworzenia aplikacji, pod tym względem jeszcze nie dogonił PyTorch. Jednym z powodów może być prostota i łatwość użycia, które PyTorch ma do zaoferowania z lepszą wydajnością.
6. Mobile Ready
Począwszy od wersji 1.3 , PyTorch dodał obsługę wdrażania na urządzeniach z Androidem i iOS . Ta funkcja przenosi wszystkie zalety PyTorch na urządzenia brzegowe, aby zaspokoić potrzeby aplikacji, które wymagają mniejszych opóźnień. Celem PyTorch mobile jest skrócenie cyklu programistycznego poprzez obsługę podstawowych interfejsów API dla platform mobilnych, eliminując potrzebę eksportu do platform mobilnych, takich jak Caffe2. Pozwala to na znaczne zmniejszenie zajmowanego miejsca na urządzeniu. Dodano również obsługę precyzyjnego dostrajania skryptów kompilacji, aby zapewnić większą kontrolę.
Zacznij korzystać z PyTorch Mobile:
Zacznij korzystać z Androida
Zacznij korzystać z iOS
7. Łatwe debugowanie
PyTorch jest głupio łatwy do debugowania, gdy masz możliwość dostępu do każdej linii i zwykłego sposobu drukowania po każdej linii. Wisienką na torcie jest to, że obiekty i operacje w PyTorch zawierają rzeczywiste dane, a nie symboliczne odniesienia, co ułatwia życie programistom. Niektóre ze standardowych debuggerów dla PyTorch to:
● ipdb
● pdb
● PyCharm
Załóżmy na przykład, że możesz użyć funkcji „pdb.set_trace ()” pdb, aby umieścić punkty przerwania w kodzie, aby przejść do źródła błędu. Ponadto dynamiczne wykresy obliczeniowe PyTorch pozwalają na dynamiczną modyfikację i szybkie debugowanie podczas wykonywania kodu.
8. Wsparcie dla ONNX
Open Neural Network Exchange działa jako ekosystem open source dla sztucznej inteligencji , zapewniając programistom AI wspólną podstawę do wymiennej pracy nad różnymi strukturami, narzędziami i bibliotekami. ONNX robi to, zapewniając standardowy format plików, który działa w wielu platformach i sprzęcie.
Jeśli chodzi o PyTorch, ONNX ma wbudowaną obsługę PyTorch i szeroką gamę innych platform, takich jak Caffe2, MXNet, TensorFlow i inne. ONNX ułatwia programistom sztucznej inteligencji eksportowanie i migrację modeli PyTorch do otwartego formatu, który mogą integrować inne platformy.
9. Wsparcie dla dynamicznych grafów obliczeniowych
Oglądając każdy model jako ukierunkowany graf acykliczny, PyTorch oferuje dynamiczne podejście do definiowania wykresów obliczeniowych. Podczas gdy inne frameworki pozwalają na definiowanie statycznych wykresów, PyTorch obsługuje tworzenie dynamicznych wykresów obliczeniowych, w których możesz dowolnie manipulować nimi w ruchu. Jednym z takich elementów, który odnosi największe korzyści z tego dynamicznego aspektu PyTorch, są wśród wielu innych powtarzające się sieci neuronowe.
10. Silne wsparcie społeczności
PyTorch oferuje również doskonałe wsparcie społeczności . Strona główna PyTorch zawiera szczegółową dokumentację dotyczącą każdej z jego funkcji. Wszystkie najnowsze aktualizacje biblioteki są dobrze wyjaśnione. Z każdym nowym dodatkiem można również znaleźć pomocne samouczki i powiązane zasoby, aby uzyskać cenne praktyczne wrażenia.
PyTorch Forum to doskonałe i wysoce zalecane miejsce dla początkujących, aby zadawać pytania, a weterani mogli dzielić się swoimi pomysłami z innymi programistami. Przy ponad stu postach dziennie społeczność jest dość aktywna i zachęca ludzi do dołączenia do PyTorch.
Oto część społeczności programistów PyTorch , zasobów i samouczków, które pomogą Ci pomóc , uczyć się i uzyskać odpowiedzi na pytania -
● Ściągawka PyTorch dla początkujących
● Informacje o wydaniu PyTorch
● Głębokie uczenie z Pytorchem: 60-minutowy blitz
● Korzystanie z danych samouczka z Dysku Google w Colab
● Dokumenty i samouczki w języku chińskim
● Poradniki w języku koreańskim
Wniosek
Dzięki ogromnej liczbie intuicyjnych funkcji dla programistów Deep Learning, PyTorch ma wiele do zaoferowania osobom o szerokim zakresie umiejętności. Pomimo zapewnienia łatwego punktu wejścia, PyTorch nie należy lekceważyć, ponieważ oferuje funkcje, które nie tylko zapewniają lepszą wydajność w niektórych aspektach, ale także oferują dodatkowe unikalne funkcje. Omówiliśmy niektóre z najczęściej omawianych funkcji PyTorch, aby pomóc Ci przejść do PyTorch, co do którego byłeś tak sceptyczny.
Więcej ciekawych lektur -
Mam nadzieję, że ten artykuł okazał się przydatny! Poniżej znajduje się kilka interesujących lektur, mam nadzieję, że je polubisz -
o autorze
Claire D . jest twórcą treści i markerem w Digitalogy - rynku pozyskiwania technologii i niestandardowego kojarzenia, który łączy ludzi z wstępnie sprawdzonymi i najwyższej klasy programistami i projektantami w oparciu o ich specyficzne potrzeby na całym świecie. Połącz się z Digitalogy na Linkedin , Twitterze , Instagramie .