Перед R2018a, чтобы выполнить пользовательскую предварительную обработку изображений для обучения нейронных сетей для глубокого обучения, вы должны были задать пользовательскую функцию чтения с помощью readFcn
свойство imageDatastore
. Однако чтение файлов с помощью пользовательской функции чтения шло медленно, потому что imageDatastore
не выполнял предварительную выборку файлов.
В R2018a четыре класса, включая matlab.io.datastore.MiniBatchable
были представлены как решение для выполнения пользовательской предварительной обработки изображений с поддержкой предварительной выборки, тасования и параллельного обучения. Реализация пользовательского мини-пакетного datastore с помощью matlab.io.datastore.MiniBatchable
имеет несколько проблем и ограничений.
В дополнение к заданию операций предварительной обработки необходимо также задать свойства и методы для поддержки чтения данных в пакетах, чтения данных по индексу и разбиения и тасования данных.
Вы должны задать значение для NumObservations
свойство, но это значение может быть плохо определено или трудно определить в реальных приложениях.
Пользовательские мини-пакетные хранилища данных недостаточно гибки, чтобы поддерживать общие рабочие процессы глубокого обучения, такие как развертываемые рабочие процессы с использованием GPU Coder™.
Начиная с R2019a, встроенные хранилища данных изначально поддерживают предварительную выборку, тасование и параллельное обучение при считывании пакетов данных. transform
функция является предпочтительным способом выполнения пользовательской предварительной обработки данных или преобразований. combine
функция является предпочтительным способом конкатенации считанных данных из нескольких хранилищ данных, включая преобразованные хранилища данных. Конкатенированные данные могут служить входными и ожидаемыми откликами сети для обучения нейронных сетей для глубокого обучения. The transform
и combine
функции имеют несколько преимуществ перед matlab.io.datastore.MiniBatchable
.
Функции включают предварительную обработку данных и конкатенацию для всех типов хранилищ данных, включая imageDatastore
.
The transform
функция требует только, чтобы вы определили конвейер обработки данных.
При использовании на детерминированном datastore функции поддерживают tall
типы данных и MapReduce.
Функции поддерживают развернутые рабочие процессы.
Нет планов по удалению read
метод matlab.io.datastore.MiniBatchable
в это время.