Потоковая передача данных (изображений) из Storage Bucket на тренировочную работу на Google AI-платформе - PullRequest
0 голосов
/ 25 февраля 2020

Я выполняю тренировочную работу, используя керасы. Весь код сложен в вычислительном отношении, и размер числа изображений, на которых он должен обучаться, составляет около 30 ГБ. Учебные изображения хранятся в хранилище Google. Я создал контейнер docker для своего учебного сценария, и каждый работает хорошо в соответствии с планом. Я заметил, что изображения копируются в выделяемую виртуальную машину, и копирование изображений из хранилища Google в учебное задание занимает около полутора часов. Это увеличивает время обучения и не подходит для меня, так как количество изображений растет еженедельно по крайней мере на 1 ГБ. Ранее я работал с AWS учебными заданиями, что давало мне возможность передавать файлы из S3 в учебное задание Sagemaker, где вход может быть «каналом» в учебное задание. Есть ли подобный сервис в облаке Google или есть лучшее решение, чем копирование всех файлов на виртуальную машину, выделенную для учебного задания?

1 Ответ

0 голосов
/ 09 марта 2020

Я публикую этот ответ со всей информацией, которой я поделился в разделе комментариев.

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

Что касается вашего комментария о Cloud FUSE , это адаптер с открытым исходным кодом, который позволяет монтировать Bucket Cloud Buckets в качестве файловой системы на Linux или MacOS . Следовательно, приложения могут взаимодействовать со смонтированной корзиной, как в простой файловой системе, обеспечивая практически неограниченное хранилище при работе в облаке. Тем не менее, в вашем случае это не рекомендуется, потому что он имеет гораздо большую задержку, чем локальная файловая система. По этой причине также не рекомендуется запускать базу данных на Cloud Storage FUSE , подробнее о ее ограничениях можно прочитать здесь .

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...