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