Для проектов и задач данного курса, авторы предлагают использовать 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, вам придется сначала создать виртуальную машину только для ЦП, а затем создать другую виртуальную машину GPU, описанную в следующем разделе.
FAQ: Почему я не вижу никаких квот, связанных с GPU, когда я следую инструкциям по их фильтрации?. Убедитесь, что у вас есть зона и регион по умолчанию, установленные в разделе Compute Engine > Settings > Region / Zone. (вычислительный механизм > настройки > регион / зона.) Пожалуйста, установите для них значения us-west1 и us-west 1b соответственно, а затем повторите попытку.
Образ виртуальной машины Google Cloud
- Перейдите на страницу gcloud marketplace. Должна открыться страница, где вам необходимо нажать на «Launch in Compute Engine», и затем вы должны увидеть лист конфигурации с заголовком «New Deep Learning VM deployment».
- Заполните поле Deployment name предпочтительным именем виртуальной машины.
- В поле Machine type измените 2 vcpu на 1 vCPU. При необходимости вы всегда можете добавить дополнительные процессоры позже.
- В поле GPUs можно выбрать один из двух путей:
- (а) если вы успешно запросили квоту GPU, вы должны установить количество графических процессоров 1. Драйверы GPU и CUDA будут автоматически установлены только в том случае, если вы выберете хотя бы 1 GPU. Для нашего первого задания вам не нужны графические процессоры. Поскольку графические процессоры очень дороги, вы можете добавить их обратно, когда они станут необходимы позже.
- (b) Если у вас еще нет квоты GPU, вы должны установить число GPU равным None. Предупреждение: драйверы GPU и CUDA не будут установлены. Все библиотеки будут работать только на процессоре. Как только ваш запрос на увеличение квоты GPU будет одобрен, вы можете следовать пути (a) для развертывания образа с поддержкой GPU.
- Установите флажок Install NVIDIA GPU driver automatically on first startup?(Установить драйвер NVIDIA GPU автоматически при первом запуске?).
- Установите флажок Enable access to JupyterLab via URL instead of SSH. (Разрешить доступ к JupyterLab через URL-адрес вместо SSH.) (Beta).
- Оставьте все остальные параметры по умолчанию.
- Нажмите на синюю кнопку Deploy в конце страницы.
Ваш список конфигурации должен выглядеть примерно так, как показано ниже:
Изменение оборудования виртуальной машины
Вы всегда можете изменить количество процессоров, количество графических процессоров, память процессора и тип GPU после создания виртуальной машины.
- Сначала вы должны остановить экземпляр.
- Перейдите к деталям экземпляров виртуальной машины в Compute Engine > VM instances > [нажать на имя экземпляра]. Нажать «edit» на странице виртуальной машины.
- В поле Machine type, Нажмите Customize.
- Установите Number of GPUs (Кол-во GPU) в None если вам не нужны GPU.
- Для типа GPU, NVIDIA Tesla K80, как правило, достаточно для большинства наших заданий. P100 и V100 намного дороже, но и быстрее.
- Прокрутите страницу вниз и нажмите кнопку Save button.
- Снова запустите экземпляр виртуальной машины.
Настройка сети
Дождитесь завершения развертывания. Вы должны увидеть работающую виртуальную машину с зеленой галочкой рядом с ней на странице Compute Engine.
Нам нужно настроить еще несколько параметров, чтобы включить удаленный доступ к Jupyter Notebooks.
- Остановите экземпляр.
- Перейдите к деталям экземпляра виртуальной машины в Compute Engine > VM instances > [нажать на имя экземпляра]. Нажмите «edit» на странице виртуальной машины.
- Выберите «Allow HTTP traffic» и «Allow HTTPS traffic».
- Прокрутите страницу вниз и нажмите синюю кнопку «save».
- Перейдите на Страницу конфигурации Firewall.
- Нажмите «CREATE FIREWALL RULE»
- Дайте ему произвольное имя, например cs231n.
- В поле Targets, выберите All instances in the network.
- В Source IP ranges, введите 0.0.0.0/0.
- В поле Protocols and ports, выберите «Specified protocols and ports». Затем поставьте галочку для tcp и введите 7000-9000.
- Нажмите синюю кнопку Create.
- Перезапустите экземпляр на странице 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.1] Введение и установка | Digiratory