Если вы знакомы с глубоким обучением, вы знаете, что вам нужно обучать модели с действительно большими наборами данных, чтобы убедиться, что ваша модель действительно хорошо работает на тестовых данных (высокая точность и отсутствие избыточного или недостаточного соответствия). Недавно я пытался обучить модель Deep CNN на рукописных наборах данных (NIST) для прогнозирования рукописных символов в правительственных/официальных документах.

Угадай, что? Мой ноутбук несколько раз зависал у меня (core i7, Nvidia GeForce 940M — 2GB). Хотя набор данных не такой уж большой (около 800 000 изображений), самой большой проблемой было манипулирование данными и их последующая передача в модель. Что я делаю? Меня осенило: используйте AWS. Я слышал о EC2, предоставляемом AWS, но меня это всегда пугало, думая, что это как черный ящик, с которым я не знаю, как обращаться!

После некоторого поиска в Google я наткнулся на AWS DLAMI. По сути, это облачный сервер, специально созданный для глубокого обучения. Он поставляется с предварительно настроенными Cuda, Tensorflow, Keras, MXNet или любой другой структурой глубокого обучения, которую вы можете запросить.

Поэтому я создал экземпляр EC2 в AWS с очень хорошей вычислительной мощностью. Но теперь, как мне войти на этот облачный сервер? Прочитав множество руководств и прочего, я понял, что это действительно просто. Код подключения — однострочный (буквально). Введите это в свой локальный терминал (Ubuntu):

$ ssh -i your-key-pair.pem ubuntu@your-public-dns

Вы получите файл .pem после создания экземпляра EC2. Кроме того, вы получите общедоступный DNS в разделе вашего экземпляра EC2 (в консоли AWS). Если все данные верны, вы получите этот экран:

Было так интересно увидеть этот экран. Я не буду публиковать здесь какие-либо обучающие материалы, но упомяну самые важные команды, которые я считаю очень полезными при обучении моделей в AWS DLAMI:

  • Вам всегда будет нужен файл .pem. Так что держите его под рукой и запомните имя. Кроме того, вам нужно изменить разрешение файла на 400, чтобы никто не мог его оценить, выполнив:
chmod 400 key-pair.pem

Без этого вы не сможете войти на сервер.

  • Чтобы скопировать файлы/папки с облачного сервера на локальный ПК:
scp -i key-pair.pem server/filename /local/path (Single file)
scp -i key-pair.pem -r server/folder_name/ /local/path (Folder copy)

Чтобы скопировать файлы/папки с локального ПК на облачный сервер, просто выполните обратный порядок. Пример:

scp -i key-pair.pem /local/path server/filename (Single file)
  • При обучении вашей модели вам потребуется много времени. Поэтому лучше убедиться, что ваш процесс работает, даже если вы выходите из своего облачного сервера со своего ПК. Для этого используйте tmux в облачном терминале:
tmux

Затем выполните команду на tmux, затем нажмите Ctrl + B, а затем D. Вы вернетесь к своему терминалу, но tmux продолжит работу на сервере. Чтобы вернуться к tmux, введите:

tmux attach

И вы вернетесь к своему экрану.

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

Это мой первый пост. Хит Claps, если вам это нравится, комментируйте свои мысли.

В будущем я опубликую учебник по глубокому обучению и aws.

Наслаждайтесь и спасибо за чтение! :)

-Саураб