Как я изучил Pytorch | Кодементор

Обо мне

Я инженер по глубокому обучению и исследователь, который в основном работал с Tensorflow и/или Keras для большинства своих проектов до нескольких месяцев назад. Я также активно использую Python в течение нескольких лет.

Почему я хотел изучить Pytorch

Я всегда пытался улучшить свои знания о Tensorflow, когда мне приходилось реализовывать сложные документы, а не пробовать другие фреймворки. Но недавно я заметил, что все больше и больше статей имеют реализации с открытым исходным кодом, доступные в Pytorch, но не в Tensorflow, особенно напрямую от авторов, поэтому я решил попробовать изучить Pytorch. Также я слышал, насколько больше Pythonic Pytorch по сравнению с Tensorflow.

Как я подошел к изучению Pytorch

Мой подход к изучению Pytorch был таким же, как и у большинства людей с любой платформой глубокого обучения. То есть попробуйте реализовать что-то очень простое, например классификатор MNIST. Но в то же время, реализуя это, я пытался узнать вещи, которые пригодятся для решения более сложных задач. Рассмотрим этапы обучения классификатора MNIST. Сначала нужно было получить ваши данные. Самым простым подходом было бы просто загрузить все ваши данные в виде массивов numpy. Но это мало чему нас учит. Тем более, что в более сложных задачах будет намного больше данных, которые не могут поместиться в ОЗУ. Также обычно мы хотели бы увеличить данные. Поэтому, когда я пытался понять, как это сделать, я узнал о наборах данных в Pytorch и о том, как они могут иметь несколько рабочих и могут быть очень эффективными. Далее нужно было определиться с моделью. На самом деле это была самая интуитивная часть. Pytorch требует, чтобы модели были классом, унаследованным от torch.nn.Module, и имели прямую функцию, которая выполняет прямой проход. Об обратном проходе заботится Pytorch. Дальше обучение. Игра с тренировками была для меня большой проблемой, особенно в Керасе. Keras требует, чтобы вы использовали обратные вызовы для выполнения пользовательских операций во время обучения. Но Pytorch дает вам полный контроль. Каждый шаг обучения выполняется вручную, но при этом используется очень мало кода. Это дает вам полный контроль над такими вещами, как потеря, скорость обучения и т. д.

Проблемы, с которыми я столкнулся

На мой взгляд, основная проблема при изучении Pytorch — плохая документация. К счастью, форум Pytorch очень помогает. Pytorch имеет множество функций практически для любой проблемы, которую вам нужно решить, но поиск функций означает копание в документации, которая кажется неорганизованной. В противном случае это просто вопрос поиска правильных классов для наследования или прямого импорта, и все готово.

Основные выводы

Не торопитесь и просматривайте документацию в любое время, когда вы застряли. Также из-за популярности Pytorch, если вы когда-либо застряли в реализации чего-либо, вы, вероятно, найдете это уже реализованным на Github.

Советы и советы

Если вы знакомы с Python и любите структурировать свой код в классы и использовать объекты, вам понравится Pytorch. Он поставляется с большим количеством функций, а также легко расширяется. Также, если вы сомневаетесь, отправляйтесь на форумы Pytorch.

Заключительные мысли и следующие шаги

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *