Глубокое обучение для Больших данных

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

Если ваши данные являются слишком большими, чтобы уместиться в памяти, используйте datastore, чтобы работать с мини-пакетами данных для обучения и вывода. MATLAB® обеспечивает много различных типов datastore, адаптированного для различных приложений. Для получения дополнительной информации о хранилищах данных для различных приложений, смотрите Хранилища данных для Глубокого обучения.

augmentedImageDatastore специально предназначено, чтобы предварительно обработать и увеличить пакеты данных изображения для приложений компьютерного зрения и машинного обучения. Для примера, показывающего, как использовать augmentedImageDatastore чтобы управлять данными изображения во время обучения, смотрите, Обучат сеть с Увеличенными Изображениями

Работа с Большими данными параллельно

Если вы хотите использовать большие объемы данных, чтобы обучить сеть, может быть полезно обучаться параллельно. Выполнение так может уменьшать время, которое требуется, чтобы обучить сеть, потому что можно обучить использование нескольких мини-пакетов одновременно.

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

Для получения дополнительной информации об обучении параллельно, смотрите, Увеличивают Глубокое обучение параллельно, на графических процессорах, и в Облаке.

Предварительно обработайте данные в фоне

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

Когда вы обучаете сеть с помощью trainNetwork функция, можно выбрать и предварительно обработать данные в фоновом режиме путем включения фоновой отправки:

  • Установите DispatchInBackground свойство datastore к true.

  • Установите 'DispatchInBackground' опция обучения к true использование trainingOptions функция.

Во время обучения некоторые рабочие используются для предварительной обработки данных вместо сетевых учебных расчетов. Можно подстроить учебный расчет и загрузки отправки данных между рабочими путем определения 'WorkerLoad' аргумент значения имени с помощью trainingOptions функция. Для расширенных настроек можно попытаться изменить количество рабочих параллельного пула.

Можно использовать встроенный мини-пакетный datastore, такой как augmentedImageDatastore, denoisingImageDatastore (Image Processing Toolbox) или pixelLabelImageDatastore (Computer Vision Toolbox). Можно также использовать пользовательский мини-пакетный datastore с фоновой включенной отправкой. Для получения дополнительной информации о создании пользовательских мини-пакетных хранилищ данных смотрите, Разрабатывают Пользовательский Мини-пакетный Datastore.

Для получения дополнительной информации о требовании datastore для фоновой диспетчеризации, смотрите Datastore Использования для Параллельной Диспетчеризации Обучения и Фона

Работа с Большими данными в облаке

Хранить данные в облаке может облегчить для вас доступу для "облачных" приложений, не будучи должен загрузить или загрузить большие объемы данных каждый раз, когда вы создаете ресурсы облака. Оба AWS® и Azure® предложите услуги хранения данных, такие как AWS S3 и Устройство хранения данных Блоба Azure, соответственно.

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

К данным о доступе, хранимым в облаке из MATLAB, необходимо сконфигурировать машину с учетными данными доступа. Можно сконфигурировать доступ из MATLAB с помощью переменных окружения. Для получения дополнительной информации о том, как установить переменные окружения получать доступ к данным об облаке от вашего клиента MATLAB, видеть работу с Удаленными данными. Для получения дополнительной информации о том, как установить переменные окружения на параллельных рабочих в удаленном кластере, смотрите Переменные окружения Набора на Рабочих (Parallel Computing Toolbox).

Для примера, показывающего, как загрузить данные на облако, смотрите Данные о Глубоком обучении Загрузки к Облаку.

Для получения дополнительной информации о глубоком обучении в облаке, смотрите Глубокое обучение в Облаке

Предварительно обработайте данные для пользовательских учебных циклов

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

Чтобы включить фоновую отправку, вы должны:

  • Установите DispatchInBackground свойство datastore к true.

  • Установите DispatchInBackground свойство minibatchqueue к true.

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

Для получения дополнительной информации о требованиях datastore для фоновой диспетчеризации, смотрите Datastore Использования для Параллельной Диспетчеризации Обучения и Фона

Смотрите также

| |

Похожие темы