Знакомство с фреймворком глубокого обучения Pytorch с точки зрения новичка

«Что такое Pytorch? «

Pytorch - это среда машинного обучения с открытым исходным кодом, оптимизированная для реализации глубокой нейронной сети. Pytorch предназначен в основном для использования с python и другими пакетами python, такими как NumPy, SciPy и Pandas.

Вы так говорите «нейронная сеть» для меня что-то значит ...

Справедливо. Нейронные сети - это алгоритмы, которые принимают данные, обучаются распознавать закономерности в данных и используют эти уроки для интерпретации новых данных или создания прогнозов. Подумайте о распознавании изображений или обработке естественного языка. Они делают это, используя структуру слоистых нейронов, вдохновленную человеческим мозгом, для оценки значений функций. Чтобы узнать об этом подробнее, я рекомендую это короткое видео на Youtube.

Я слышал о NumPy! Как это связано?

На самом деле это довольно хорошо… в некотором смысле. Pytorch использует тензоры, которые чем-то похожи на массивы NumPy. Технически тензор - это массив как минимум с тремя измерениями. Для сравнения: матрица - это двумерный массив, вектор - это одномерный массив, а скаляр - это нулевой массив. Однако при работе с машинным обучением и Pytorch все эти массивы в просторечии называются тензорами. Однако, в отличие от массивов NumPy, тензорные системы можно запускать на графических процессорах. Вот отличный блог о тензорах.

И это хорошо, почему?

Это может ускорить ваши вычисления! ЦП - это главный процессор, который использует большинство людей в вычислительной технике ... просмотр фильмов, просмотр веб-страниц, обработка текста ... эти задачи очень сложные, но это более линейные процессы. С другой стороны, графические процессоры - это специализированные процессоры, предназначенные для выполнения простых задач, но многие из этих простых задач выполняются параллельно. Поскольку матричная математика и вычисления, выполняемые внутри нейронных сетей, относительно просты, но многие из них выполняются одновременно, и многие из них должны выполняться, преимущество возможности делать это на графических процессорах, а не на процессорах. очевидно!

Понятно. Тензоры, сетевые узлы, графические процессоры, что-нибудь еще «интересное» в PyTorch?

Да! Фактически, одной из замечательных особенностей PyTorch является то, что он имеет библиотеку визуализации под названием TensorBoard, которую очень легко реализовать, чтобы помочь вам визуализировать и отслеживать, что происходит с вашими моделями.

TensorBoard? Почему бы мне просто не использовать TensorFlow?

Pytorch предлагает графики динамических вычислений, тогда как TensorFlow использует графики статических вычислений. Согласно Интернету, это полезно для определенных людей для определенных приложений. Но TensorFow 2.0 отходит от графов статических вычислений.

Кажется, вы много знаете о PyTorch, какую работу вы с ним проделали? И куда бы вы меня указали в следующий раз?

Абсолютно нет, я просто покопался в документации, руководствах и ресурсах PyTorch, найденных здесь. Я последовал нескольким из их руководств, чтобы построить модель классификатора изображений и изучить свою модель на TensorBoard. Я рекомендую обратиться к первоисточнику!