Сверточные нейронные сети для компьютерного зрения [0.4] Инструкция по использованию Google Cloud

Для проектов и задач данного курса, авторы предлагают использовать Google Compute Engine для разработки и тестирования ваших реализаций, однако, по нашему мнению это не самый лучший вариант. В этом руководстве перечислены необходимые шаги для работы над заданиями с помощью Google Cloud. Мы рассчитываем, что изучение этого руководства займет около 1 часа. Не пугайтесь шагов, мы постарались сделать это руководство наиболее подробным, чтобы у вас было меньше шансов застрять на определенном шаге. 

Это руководство говорит о том, как настроить собственный экземпляр Google Compute Engine (GCE) для работы с заданиями. После первой регистрации, вы по умолчанию получите $300 от Google.

Создание и настройка аккаунта

Во-первых, если у вас еще нет аккаунта Google Cloud, создайте его перейдя на главную страницу Google Cloud и нажав Compute. Когда вы перейдете на следующую страницу, нажмите на синюю кнопку TRY IT FREE. Если вы не вошли в gmail, вы увидите страницу, которая выглядит так, как показано ниже. Войдите в свою учетную запись gmail или создайте новую, если у вас еще нет учетной записи.

Нажмите соответствующую кнопку «Да» или «нет»для первого варианта и установите флажок «да» для второго варианта после прочтения необходимых соглашений. Нажмите синюю кнопку Согласиться и продолжить, чтобы перейти на следующую страницу и ввести запрашиваемую информацию (ваше имя, платежный адрес и данные кредитной карты). Не забудьте выбрать «Тип счета» как «индивидуальный»:

После того, как вы ввели необходимую информацию, нажмите синюю кнопку Start my free trial. Вам откроется следующая страница:

Нажмите кнопку «Google Cloud Platform» (в красном круге), и вы попадете на главную панель мониторинга:

Чтобы изменить название вашего проекта, нажмите кнопку Go в настройках проекта в разделе Project info (Информация о проекте).

Запрос на увеличение квоты используемой GPU

Новая учетная запись обычно не поставляется с квотой GPU. Вы должны явно запросить его в разделе IAM Admin > Quotas. Следуйте инструкциям по адресу:

Пожалуйста, запросите увеличение квоты как можно скорее, потому что обработка запроса может занять неделю! Если у вас нет квоты GPU, вам придется сначала создать виртуальную машину только для ЦП, а затем создать другую виртуальную машину GPU, описанную в следующем разделе.

FAQ: Почему я не вижу никаких квот, связанных с GPU, когда я следую инструкциям по их фильтрации?. Убедитесь, что у вас есть зона и регион по умолчанию, установленные в разделе Compute Engine > Settings > Region / Zone. (вычислительный механизм > настройки > регион / зона.) Пожалуйста, установите для них значения us-west1 и us-west 1b соответственно, а затем повторите попытку.

Образ виртуальной машины Google Cloud

  1. Перейдите на страницу gcloud marketplace. Должна открыться страница, где вам необходимо нажать на «Launch in Compute Engine», и затем  вы должны увидеть лист конфигурации с заголовком «New Deep Learning VM deployment».
  2. Заполните поле Deployment name предпочтительным именем виртуальной машины.
  3. В поле Machine type измените 2 vcpu на 1 vCPU. При необходимости вы всегда можете добавить дополнительные процессоры позже.
  4. В поле GPUs можно выбрать один из двух путей:
    • (а) если вы успешно запросили квоту GPU, вы должны установить количество графических процессоров 1. Драйверы GPU и CUDA будут автоматически установлены только в том случае, если вы выберете хотя бы 1 GPU. Для нашего первого задания вам не нужны графические процессоры. Поскольку графические процессоры очень дороги, вы можете добавить их обратно, когда они станут необходимы позже.
    • (b) Если у вас еще нет квоты GPU, вы должны установить число GPU равным None. Предупреждение: драйверы GPU и CUDA не будут установлены. Все библиотеки будут работать только на процессоре. Как только ваш запрос на увеличение квоты GPU будет одобрен, вы можете следовать пути (a) для развертывания образа с поддержкой GPU.
  5. Установите флажок Install NVIDIA GPU driver automatically on first startup?(Установить драйвер NVIDIA GPU автоматически при первом запуске?).
  6. Установите флажок Enable access to JupyterLab via URL instead of SSH.  (Разрешить доступ к JupyterLab через URL-адрес вместо SSH.) (Beta).
  7. Оставьте все остальные параметры по умолчанию.
  8. Нажмите на синюю кнопку Deploy в конце страницы.

Ваш список конфигурации должен выглядеть примерно так, как показано ниже:

Изменение оборудования виртуальной машины

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

  1. Сначала вы должны остановить экземпляр.
  2. Перейдите к деталям экземпляров виртуальной машины в Compute Engine > VM instances > [нажать на имя экземпляра]. Нажать «edit» на странице виртуальной машины.
  3. В поле Machine type, Нажмите Customize.
  4. Установите Number of GPUs (Кол-во GPU) в None если вам не нужны GPU.
  5. Для типа GPU, NVIDIA Tesla K80, как правило, достаточно для большинства наших заданий. P100 и V100 намного дороже, но и быстрее.
  6. Прокрутите страницу вниз и нажмите кнопку Save button.
  7. Снова запустите экземпляр виртуальной машины.

Настройка сети

Дождитесь завершения развертывания. Вы должны увидеть работающую виртуальную машину с зеленой галочкой рядом с ней на странице Compute Engine.

Нам нужно настроить еще несколько параметров, чтобы включить удаленный доступ к Jupyter Notebooks.

  1. Остановите экземпляр.
  2. Перейдите к деталям экземпляра виртуальной машины в Compute Engine > VM instances > [нажать на имя экземпляра]. Нажмите «edit» на странице виртуальной машины.
  3. Выберите «Allow HTTP traffic» и «Allow HTTPS traffic».
  4. Прокрутите страницу вниз и нажмите синюю кнопку «save».
  5. Перейдите на Страницу конфигурации Firewall.
  6. Нажмите «CREATE FIREWALL RULE»
  7. Дайте ему произвольное имя, например cs231n.
  8. В  поле Targets, выберите All instances in the network.
  9. В Source IP ranges, введите 0.0.0.0/0.
  10. В поле Protocols and ports, выберите «Specified protocols and ports». Затем поставьте галочку для tcp и введите 7000-9000.
  11. Нажмите синюю кнопку Create.
  12. Перезапустите экземпляр на странице Compute Engine.

Ваша конфигурация должна выглядеть примерно так, как показано ниже:

Правила Firewall:

Доступ к только что созданной виртуальной машине

Теперь, после создания своего виртуального GCE, необходимо иметь возможность подключиться к нему с вашего компьютера. Остальная часть этого урока посвящена тому, как это сделать с помощью командной строки.  Во-первых, загрузите Google Cloud SDK, который подходит для вашей платформы отсюда, и следуйте инструкциям по установке. Примечание: в этом руководстве предполагается, что вы выполнили Шаг № 4 на веб-сайте, который указан как необязательный. При появлении запроса убедитесь, что вы выбрали us-west1-b в качестве часового пояса.

Если gcloud не находится в системном пути, вы также можете ссылаться на нее по полному пути /<каталог-где-GOOGLE-CLOUD-установлен>/bin / gcloud. Более подробные инструкции см. на этой странице.

Чтобы подключиться по ssh к виртуальной машине, перейдите на страницу сведений об экземпляре виртуальной машины (VM instance details), щелкнув его имя. В разделе удаленный доступ (Remote access) в верхней части страницы вы можете либо нажать непосредственно на SSH, который запустит новое окно браузера с сеансом SSH, либо нажать на стрелку раскрывающегося списка и выбрать View gcloud command, чтобы получить команду терминала. Это должно выглядеть так:

gcloud compute --project "<ID_Вашего_Проекта>" ssh --zone "us-west1-b" "<Имя_Вашей_ВМ>"

Сценарий первой установки

После первого входа SSH в виртуальную машину необходимо выполнить несколько команд в домашнем каталоге. Вам будет предложено установить пароль для Jupyter Notebook.

git clone https://github.com/cs231n/gcloud.git
cd gcloud/
chmod +x ./setup.sh
./setup.sh

Проверка установки

Если GPU включен, вы должны иметь возможность:

  • Запустить nvidia-smi и просмотреть список всех подключенных GPU, а также статистику их использования. Запустить watch nvidia-smi, чтобы следить за использованием  GPU в реальном времени.
  • В каталоге gcloud/, запустить python verify_gpu.py. Если GPU подключен и CUDA установлено корректно, вы не увидите никаких ошибок.
  • Если вы хотите использовать Tensorflow 2.0, запустите python test_tf.py. Скрипт покажет вам установленную версию Tensorflow (2.0.0-alpha) и запустит алгоритм обучения по обучающей выборке (sample MNIST training). Обучение должно завершиться с точностью 97%.

Использование Jupyter Notebook с Google Compute Engine

Многие задания будут связаны с использованием Jupyter Notebook. Ниже мы обсудим, как запустить Jupyter Notebook из вашего экземпляра GCE и подключиться к нему с помощью локального браузера.

Получение статического IP адреса

Измените внешний IP-адрес вашего экземпляра Google Cloud Engine на статический (см. скриншот ниже).

Для этого нажмите на значок 3 строки рядом с кнопкой Google Cloud Platform в левом верхнем углу экрана, перейдите по VPC network > External IP addresses (см. скриншот ниже).

Чтобы иметь статический IP-адрес, измените тип (Type) с Ephemeral на Static. Введите предпочтительное имя для вашего статического IP, наш-cs231n-ip (см. скриншот ниже). И нажмите на Reserve.

Замечание: Когда вам более не нужен ваш экземпляр, освободите статический IP адрес, поскольку Google взимает небольшую плату за неиспользуемые статические адреса (согласно этой странице).

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

Запуск и подключение к Jupyter Notebook

После подключения ssh к виртуальной машине с помощью предыдущих инструкций запустите Jupyter Notebook из папки с заданиями курса.

jupyter notebook

Порт по умолчанию — 8888, определен в ~/.jupyter/jupyter_notebook_config.py.

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

Завершение работы: Передача файлов из экземпляра ВМ на компьютер

После выполнения заданий, запустите скрипт отправки файлов в папке назначения, чтобы создать zip-файл. Пожалуйста, обратитесь к конкретным инструкциям для каждого задания.

Когда вы создали zip файл, например assignment1.zip, нужно передать файл из экземпляра GCE на ваш компьютер. Для этого существует простая команда:

gcloud compute scp <user>@<instance-name>:/path/to/assignment1.zip /local/path

Например, чтобы загрузить файлы из экземпляра GCE в текущий каталог:

gcloud compute scp tonystark@cs231:/home/shared/assignment1.zip .

Передача работает в двух направлениях. Для передачи файла в GCE:

gcloud compute scp /my/local/file tonystark@cs231:/home/shared/

Другой (возможно, более простой) вариант, предложенный студентом, заключается в том, чтобы напрямую загрузить zip-файл с Jupiter Notebook. После запуска скрипта отправки и создания assignment1.zip, вы можете скачать этот файл прямо с Jupyter. Для этого перейдите в Jupyter Notebook и нажмите на zip-файл, который будет загружен на ваш локальный компьютер.

Важное напоминание: Убедитесь что вы остановили виртуальные машины!

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

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

Один комментарий к “Сверточные нейронные сети для компьютерного зрения [0.4] Инструкция по использованию Google Cloud

  1. Уведомление: Сверточные нейронные сети для компьютерного зрения [0.1] Введение и установка | Digiratory

Обсуждение закрыто.