Как я получил сертификат TensorFlow-разработчика (и как его получить вам)

Автор оригинала: Daniel Bourke
  • Перевод
image

В начале мая я решил получить сертификат TensorFlow-разработчика. Для этого я разработал программу обучения для совершенствования своих навыков и выполнил задания сертификационного экзамена пару дней назад (3 июня). Оказалось, что я сдал экзамен успешно.

Позвольте мне рассказать вам как я это сделал, и как вам сделать то же самое.

Погодите. Что вообще такое TensorFlow?

TensorFlow — это система численных вычислений с открытым исходным кодом, которая позволяет вам осуществлять предварительную обработку и моделирование данных (находить в них закономерности, как правило, с помощью глубокого обучения), а также разворачивать свои решения для всего мира.

Google использует TensorFlow для поддержки всех своих сервисов машинного обучения. Скорее всего, устройство, на котором вы это читаете, раньше использовало TensorFlow в том или ином виде.

Обычно вы пишете код с использованием TensorFlow на очень понятном Python (именно это требуется для экзамена) или JavaScript (tensorflow.js), и он запускает ряд базовых функций, написанных на C. Эти функции выполняют описанные вами ранее команды (производят множество численных вычислений).

Итак, теперь мы знаем, что такое TensorFlow, но что такое сертификация TensorFlow-разработчика? И почему вас это может заинтересовать?

Что такое сертификация TensorFlow-разработчиков?


Сертификация TensorFlow-разработчиков, как вы могли догадаться, является способом продемонстрировать вашу способность работать с TensorFlow.

В частности, вашу способность использовать TensorFlow (версию для Python) при построении моделей глубокого обучения для ряда различных задач: регрессионного анализа, компьютерного зрения (нахождения паттернов в изображениях), обработки естественного языка (нахождения паттернов в тексте) и прогнозирования временных рядов (прогнозирования будущих тенденций с учетом ряда событий в прошлом).

Зачем вам нужен cертификат TensorFlow-разработчика?


Первой причиной для было веселье. Мне захотелось дать себе небольшой вызов в работе и найти повод прочитать новую книгу, которую я купил (подробнее об этом позже).

Но есть и еще две веские причины:

  1. Приобрести основополагающие навыки, необходимые для создания приложений, использующих технологии машинного обучения.
  2. Продемонстрировать свою компетенцию будущему работодателю.

Говоря о будущих работодателях: исходя из данных страницы Hacker News's Who's Hiring (страница, на которой перечислены ежемесячные подборки вакансий разработчиков программного обеспечения), похоже, что TensorFlow опережает другие фреймворки для глубокого обучения.

image

Сравнение различных фреймворков для глубокого обучения на основе частоты их упоминания в различных публикациях о работе на странице Hacker News's Who's Hiring. Примечание: Начиная с TensorFlow 2.x, Keras по сути является частью TensorFlow. Примечание 2: В связи с текущими глобальными обстоятельствами, общий уровень найма любых разработчиков программного обеспечения снижается.

Хочу уточнить, что оплаченный сертификат не является гарантией получения работы. Тем не менее, в мире онлайн-обучения, где навыки превращаются в товар, это еще один способ показать, на что вы способны.

Я считаю это приятным дополнением к существующему списку личных проектов, над которыми вы работали — курсы формируют фундаментальные знания, проекты формируют конкретные знания.

Так как же все это делается?

Как подготовиться к экзамену


Когда я решил, что мне это интересно, я посетил сайт программы сертификации и прочитал Справочник по сертификации разработчиков TensorFlow.

Из этих двух ресурсов я построил учебный план.

Учебный план отражает то, что я изучал для формирования навыков, необходимых для сдачи экзамена


Следует отметить, что до того, как я начал готовиться к экзамену, у меня был некоторый практический опыт построения нескольких проектов с TensorFlow.

Опытный TensorFlow-специалист или практикующий специалист по глубокому изучению, скорее всего, сможет пройти следующую учебную программу примерно в том же темпе (всего 3 недели), что и я (возможно, быстрее).

Новичок может потратить столько времени, сколько потребуется. Помните: приобретение любого стоящего навыка требует времени.

Я перечислил сроки, стоимость (в долларах США) и уровень полезности (для сдачи экзамена) для каждого ресурса. Сроки основаны на моем опыте.

Если вы хотите создать учебную программу для себя, я бы порекомендовал что-то вроде перечня, приведенного ниже.

Примечание: Для платных ресурсов были использованы партнерские ссылки. Это не изменит цену ресурса для вас, но если вы приобретете доступ к одному из материалов, я получу часть от этой суммы: я использую эти деньги для создания подобных материалов.

1. Справочник по сертификации разработчиков TensorFlow



Время: 1 час.
Стоимость: Бесплатно.
Уровень полезности: Обязательно.

Этот ресурс должен быть вашей первой остановкой. Он описывает темы, которые будут рассматриваться на экзамене. Прочтите его, а затем прочтите еще раз.

Если вы новичок в TensorFlow и машинном обучении, вы, скорее всего, прочтете его и будете напуганы самыми разными аспектами. Не волнуйтесь. Ресурсы ниже помогут вам с ними ознакомиться.

2. Практическая специализация по TensorFlow на Coursera


Время: от 3 недель (продвинутый пользователь) до 3 месяцев (новичок).

Стоимость: $59 в месяц после 7-дневного бесплатного пробного периода, имеется возможность запросить финансовую поддержку. Если вы не можете получить доступ к Coursera, см. эквивалентную бесплатную версию на YouTube.

Уровень полезности: 10/10.

Это наиболее релевантный ресурс для экзамена (и начала работы с TensorFlow в целом). Внимательный слушатель заметит руководство по сертификации TensorFlow, а контуры этой специализации практически идентичны.

Его преподают Лоренс Морони и Эндрю Нг, два титана TensorFlow и машинного обучения, и если бы мне пришлось выбирать только один ресурс для подготовки к экзамену, то это был бы именно этот курс.

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

Подсказка для упражнений по программированию: не просто заполняйте пробелы в коде, а пишите все сами.

3. Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow 2-е издание.



Время: от 3 недель (чтение от корки до корки, без упражнений) до 3 месяцев (чтение от корки до корки и выполнение упражнений).

Стоимость: Цена на Amazon варьируется, но я купил бумажную версию за $55. Весь код можно посмотреть бесплатно на GitHub.

Уровень полезности: 7/10 (только потому, что некоторые главы не относятся к экзамену).

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

Если вы новичок в машинном обучении, то, скорее всего, вам будет трудно прочитать эту книгу (в начале пути). Опять же, не волнуйтесь, вам некуда спешить, обучение полезным навыкам требует времени.

Скажем так: если вы хотите получить представление о качестве книги, я прочитал первое издание утром, когда ездил на работу, будучи инженером машинного обучения. И я могу сказать, что чаще всего по ходу рабочего дня мне пригождалось то, что я прочитал в книге.

Второе издание ничем не отличается, за исключением того, что оно было обновлено, чтобы охватить новейшие инструменты и методики, а именно TensorFlow 2.x — на чем и основан экзамен.

Если вам нужны только главы, соответствующие экзамену, вы захотите прочитать следующие:

  • Глава 10: Введение в искусственные нейронные сети с помощью Keras
  • Глава 11: Обучение глубоких нейронных сетей
  • Глава 12: Пользовательские модели и обучение с помощью TensorFlow
  • Глава 13: Загрузка и предварительная обработка данных с помощью TensorFlow
  • Глава 14: Глубокое компьютерное зрение с использованием сверточных нейронных сетей
  • Глава 15: Обработка последовательностей с использованием рекуррентных и сверточных нейронных сетей
  • Глава 16: Обработка текста на естественном языке с использованием рекуррентных нейронных сетей и внимания

Но серьезному студенту я бы предложил прочитать всю книгу и выполнить упражнения (может быть, не все, а те, которые больше всего отвечают вашим интересам).

4. Введение в глубокое обучение от MIT


Время: от 3 часов (я смотрел только 3 лекции) до одного дня (1 час на каждую лекцию, плюс по часу на обзор).

Стоимость: Бесплатно.

Уровень полезности: 8/10.

Курс по глубокому обучению мирового уровня от университета мирового уровня. Я не забыл упомянуть, что это бесплатно?

Первые 3 лекции, разделы про глубокое обучение (обзорно), сверточные нейронные сети (обычно используются для компьютерного зрения) и рекуррентные нейронные сети (обычно используются для обработки текста) наиболее важны для экзамена.

Но, опять-таки, для усердного слушателя было бы полезно прохождение всего курса.

Обязательно ознакомьтесь с лабораториями и кодом, которые они предлагают на GitHub, особенно с Введением в TensorFlow. И опять же, я не могу в полной мере обозначить важность самостоятельного написания кода.

5. Начало работы с PyCharm



Время: 3 часа (в зависимости от того, насколько быстр ваш компьютер).

Стоимость: Бесплатно.

Уровень полезности: 10/10 (обязательно использование PyCharm).

Экзамен проводится в PyCharm (инструмент для разработки на Python). До экзамена я никогда не пользовался PyCharm, и перед началом предлагается хотя бы немного с ним ознакомиться.
Чтобы познакомиться с PyCharm, я просмотрел серию вводных роликов на YouTube, и они были весьма прямолинейны: «Вот что делает эта кнопка».

Но основными испытаниями были проверка того, что TensorFlow 2.x работает без проблем, а также возможность работы с глубокими нейронными сетями за разумное время (в моем MacBook Pro нет графического процессора Nvidia).

Для проверки этих аспектов я скопировал следующие два руководства по TensorFlow на свою локальную машину:

  1. Классификация изображений с помощью TensorFlow
  2. Классификация текста с помощью TensorFlow

Однако, как мы увидим ниже, как только я начал сдавать экзамен, я столкнулся с проблемой.

Дополнительно


Видео от deeplearning.ai на Coursera/YouTube — экзамен подразумевает выполнение задач по программированию (необходимо писать код на Python), но если вы хотите знать, что происходит за кулисами кода, который вы пишете (линейная алгебра, математический анализ), я бы посмотрел эти видео по мере возможности. Например, если вы не знаете, что такое градиентный спуск с мини-пакетами, поищите «deeplearning.ai mini-batch gradient descent»

Документация TensorFlow — если вы собираетесь стать практикующим специалистом TensorFlow, вам необходимо иметь возможность прочитать документацию. Если вы чего-то не понимаете, напишите код и прокомментируйте его самостоятельно.

Программирование с помощью TensorFlow на YouTube (плейлист) — Большая часть специализации по TensorFlow с Coursera в видеороликах на YouTube, преподается тем же самым лектором.

Как я готовился к экзамену


Вооружившись вышеперечисленными ресурсами, я составил план в Notion.

image

Моя программа подготовки к прохождению сертификации TensorFlow-разработчика в Notion. Для отслеживания того, что нужно сделать, я использовал методику канбан, а также различные ресурсы и заметки. Если вы перейдете по ссылке, вы можете сделать свою собственную копию, нажав на кнопку «duplicate» в правом верхнем углу.

Каждое утро в течение мая я вставал, писал, гулял, 1 час читал книгу «Практическое машинное обучение», 2-3 часа работал с TensorFlow на практике (сначала смотрел лекции, а затем выполнял все упражнения по кодированию в Google Colab), а в конце каждого модуля смотрел соответствующую лекцию «Введение в глубокое обучение» от MIT.

Например, как только я закончил секцию компьютерного зрения в рамках практической специализации по TensorFlow, я посмотрел лекцию по сверточным нейронным сетям (тип алгоритма компьютерного зрения) от MIT.

Такой тройной подход оказался особенно эффективным.

Концепция, изученная в книге, была закреплена примерами кода из специализации Coursera и, в конечном счете, подытожена видеоматериалом от MIT.

Чтобы составить представление о сроках, я начал готовиться к экзамену 11 мая и сдал его 3 июня.

По моим наблюдениям (в Notion) и по моим рукописным закладкам, я в среднем изучал 20 страниц в час и проходил около 1 недели содержания курса за 2-3 часа изучения (без отвлекающих факторов).

Наконец, за пару дней до экзамена я скачал PyCharm и убедился, что несколько примеров кода, которые я изучил, работают на моей локальной машине.

Детали – что происходит во время самого экзамена


Итак, вы закончили обучение? Что теперь?

Ну, давайте начнем с двух важных факторов.

Стоимость экзамена: 100 долларов США (после неудачной попытки вам придется ждать 2 недели, чтобы попробовать еще раз, с каждой неудачной попыткой время ожидания будет увеличиваться).

Время: 5 часов. Если бы не ошибка в начале экзамена, я бы сказал, что я бы спокойно сдал его за 3 часа. Тем не менее, увеличенный лимит времени должен давать вам время, достаточное для тренировки моделей глубокого обучения на компьютере (поэтому убедитесь, что все работает до начала экзамена).

Как устроен экзамен


Я не собираюсь раскрывать здесь многого, потому что это будет нечестно. Все, что я скажу – прочитайте Справочник TensorFlow-разработчика, и вы получите четкое представление об основных разделах экзамена.

Потренируйтесь в каждой из технологий, упомянутых в руководстве (используя ресурсы, упомянутые выше), и вы будете готовы.

Нюансы экзамена


Обучение моделей — Если ваш компьютер не может достаточно быстро обучать модели глубокого обучения (частью критериев оценки является представление обученных моделей), вы можете обучить их в Google Colab с помощью бесплатного облачного графического процессора, а затем загрузить их, поместив в соответствующие каталоги для экзамена и отправить через PyCharm.

Мой сломанный интерпретатор Python — В материале по подготовке к экзамену подчеркивается, что для сдачи экзамена требуется Python 3.7. Когда я начинал, у меня был Python 3.7.3. И по каким-то причинам, несмотря на то, что TensorFlow работал накануне на моей локальной машине с использованием PyCharm, после начала экзамена (который автоматически создает для вас среду TensorFlow), все сломалось.

А именно, каждый раз, когда я прогонял хотя бы одну строку кода TensorFlow, я получал ошибку:

RuntimeError: dictionary changed size during iteration

Сейчас я не уверен, дело в версии TensorFlow, которую установил экзамен (2.0.0), или в конкретной версии Python, которая у меня была (3.7.3).

Тем не менее, после нескольких проклятий и бурного поиска в глубинах старого треда о проблемах на GitHub, я обнаружил странное исправление, которое означало, что мне придется изменить исходный код той версии Python, которую я использовал (в частности, строку 48 lincache.py).

# Previous line 48 of lincache.py
for mod in sys.modules.values():
# Updated line 48 of linecache.py
for mod in list(sys.modules.values()): # added list()

Примечание: это быстрое решение, так как оно было использовано только на время экзамена, поэтому я не уверен, имеет ли оно какую-либо долгосрочную выгоду или приводит ли к каким-либо последствиям.

Во время бешеного поиска я также прочитал, что альтернативой является обновление/переустановка версии TensorFlow, которую вы используете в PyCharm (например, 2.0.0 -> 2.2.x). Я попробовал, и это не сработало, однако, будучи новичком в PyCharm, я допускаю, что ошибся в чем-то как пользователь.

После исправления я смог закончить экзамен без проблем.

Что будет после того, как вы закончите экзамен


Вы получите уведомление по электронной почте, когда/если вы сдадите экзамен. Отзывов не будет, за исключением «Поздравляем, вы сдали» или «К сожалению, на этот раз вы не сдали».

Без каких-либо негативных последствий, во время сдачи экзамена вы будете получать довольно четкие указания – сдадите вы или нет (каждый раз, когда вы представляете модель, она получает отметку).

Если вы все-таки сдадите – поздравляю!

Обязательно заполните форму в электронном письме, чтобы удостовериться, что вы добавлены в сеть сертифицированных TensorFlow-разработчиков.

После того, как вы сдадите экзамен и заполните форму в электронном письме с подтверждением, через пару недель вы сможете получить доступ к Google Developers Certification Network.

image

Примечание: На момент написания статьи меня там еще не было. Это займет 1-2 недели.

Регистрация означает, что любой, кто ищет опытных TensorFlow-разработчиков, сможет найти вас, основываясь на вашем типе сертификации, опыте и регионе.

Наконец, в течение пары недель вы получите по электронной почте официальный сертификат и бейдж разработчика TensorFlow (я свои еще не получил). Вы сможете добавлять их к проектам, над которыми вы работали.

Вопросы


Могу ли я просто пройти курсы, почитать книгу и самостоятельно попрактиковаться, действительно ли мне нужен сертификат?

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

Если ты говоришь, что сертификат не обязателен – зачем ты его получил?

Мне нравится иметь вызов и работать для того, чтобы с ним справиться. Назначение даты (например, «Я сдаю экзамен 3 июня») не оставило мне иного выбора, кроме как учиться.

Могу ли я сделать это с помощью бесплатных ресурсов?

Конечно можете. Вы можете пойти и приобрести все необходимые навыки, изучив документацию TensorFlow. На самом деле, когда мне нужно в чем-то попрактиковаться, я копирую примеры из документации (каждую строку кода), отрабатываю понимание каждой строчки, а затем пытаюсь повторить увиденное самостоятельно.

Почему не PyTorch?

Я люблю PyTorch. Но они не предлагают сертификации, а если бы предлагали, я бы, наверное, прошел и ее (ради забавы). К тому же, опытный пользователь обоих фреймворков (PyTorch и TensorFlow) заметит, что последние обновления привели к тому, что эти два фреймворка стали очень похожи. Кроме того, TensorFlow имеет преимущество в корпоративном мире (см. график выше).

Я ничего не знаю о машинном обучении, с чего я могу начать?

Читайте статью «5 Шагов в машинном обучении для начинающих».

Я сдал экзамен и зарегистрировался в Google Developers Certification Network, что делать дальше?

Пора творить! Используйте полученные навыки, чтобы создать то, что вы хотели бы видеть в мире. И не забывайте делиться своими работами, никогда не знаете, кто их увидит.

Что-то не упомянул? Не стесняйтесь оставлять комментарии или задавать вопросы по электронной почте. И я отвечу.

PS, если вы предпочитаете смотреть ролики, я сделал видео-версию этой статьи.


image

Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя платные онлайн-курсы SkillFactory:



Читать еще


SkillFactory
Онлайн-школа по программированию

Комментарии 0

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое