Если вы знакомы с глубоким обучением, вы знаете, что вам нужно обучать модели с действительно большими наборами данных, чтобы убедиться, что ваша модель действительно хорошо работает на тестовых данных (высокая точность и отсутствие избыточного или недостаточного соответствия). Недавно я пытался обучить модель 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.
Наслаждайтесь и спасибо за чтение! :)
-Саураб