Обучите модель глубокого обучения в MATLAB

Можно обучить и настроить модель глубокого обучения в различных способах — например, можно переобучить предварительно обученную модель с новыми данными (передача обучения), обучить сеть с нуля, или задать модель глубокого обучения как функцию и использовать пользовательский учебный цикл. Используйте эту блок-схему, чтобы выбрать метод обучения, который подходит лучше всего для вашей задачи.

Совет

Для получения информации о рабочих процессах компьютерного зрения, включая для обнаружения объектов, смотрите Компьютерное зрение с использованием глубокого обучения. Для получения информации об импорте сетей и сетевых архитектур от TensorFlow™-Keras, Caffe и формат модели ONNX™ (Open Neural Network Exchange), видят Импорт и экспорт Глубокого обучения.

Методы обучения

Эта таблица предоставляет информацию о различных методах обучения.

МетодБольше информации
Используйте сеть непосредственно

Если предварительно обученная сеть уже выполняет задачу, вы требуете, то вы не должны переобучать сеть. Вместо этого можно сделать предсказания с сетью непосредственно при помощи classify и predict функции.

Для примера смотрите, Классифицируют Изображение Используя GoogLeNet.

Обучите сеть с помощью trainingOptions и trainNetwork

Если у вас есть сеть, заданная как массив слоя или график слоев, и trainingOptions функция предоставляет все возможности, в которых вы нуждаетесь, затем можно обучить сеть с помощью trainNetwork функция.

Для примера, показывающего, как переобучить сеть (передача обучения), смотрите, Обучают Нейронную сеть для глубокого обучения Классифицировать Новые Изображения. Для примера, показывающего, как обучить сеть с нуля, смотрите, Создают Простую сеть глубокого обучения для Классификации.

Обучите сеть с помощью dlnetwork возразите и пользовательский учебный цикл

Для большинства задач можно управлять деталями алгоритма настройки с помощью trainingOptions и trainNetwork функции. Если trainingOptions функция не предоставляет возможности, в которых вы нуждаетесь для своей задачи (например, пользовательское расписание скорости обучения), затем можно задать собственный учебный цикл с помощью dlnetwork объект. dlnetwork объект позволяет вам обучать сеть, заданную как график слоев с помощью автоматического дифференцирования.

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

Для примера, показывающего, как обучить сеть с пользовательским расписанием скорости обучения, смотрите, Обучат сеть Используя Пользовательский Учебный Цикл.

Чтобы учиться, больше видит, Задают Пользовательские Учебные Циклы, Функции потерь и Сети.

Обучите сеть с помощью функционального и пользовательского учебного цикла модели

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

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

Решения

Эта таблица предоставляет больше информации о каждом решении в блок-схеме.

РешениеБольше информации
Deep Learning Toolbox™ обеспечивает подходящую предварительно обученную сеть?

Для большинства задач можно использовать или переобучить предварительно обученную сеть такой как googlenet.

Для списка предварительно обученных нейронных сетей для глубокого обучения в MATLAB®, смотрите Предварительно обученные Глубокие нейронные сети. Можно использовать предварительно обученные сети непосредственно с новыми данными, или можно переобучить их с новыми данными для различных задач с помощью передачи обучения.

Можно ли использовать сеть без переобучения?

Если предварительно обученная сеть уже выполняет задачу, вам нужно, то можно использовать сеть непосредственно без переобучения. Например, можно использовать googlenet сеть, чтобы классифицировать изображения на 1 000 классов. Чтобы сделать предсказания с сетью непосредственно, используйте classify и predict функции. Для примера смотрите, Классифицируют Изображение Используя GoogLeNet.

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

Можно ли задать модель как массив слоя или график?

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

Некоторые сетевые архитектуры не могут быть заданы как график слоев. Например, сиамские сети требуют совместного использования веса и не могут быть заданы как график слоев. Для этих сетей необходимо задать модель как функцию. Для примера смотрите, Обучат сеть Используя Функцию Модели.

Сеть имеет один выход только?

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

Deep Learning Toolbox обеспечивает промежуточные слои, в которых вы нуждаетесь?

Deep Learning Toolbox обеспечивает много различных слоев для задач глубокого обучения. Для списка слоев смотрите Список слоев глубокого обучения.

Если Deep Learning Toolbox обеспечивает промежуточные слои (слои посреди сети), что вам нужно, то можно задать сеть как массив слоя или график слоев с помощью этих слоев. В противном случае попытайтесь задать любые неподдерживаемые слои как пользовательские слои. Для получения дополнительной информации смотрите, Задают Пользовательские Слои Глубокого обучения.

Можно ли задать неподдерживаемые промежуточные слои как пользовательские слои?

Если Deep Learning Toolbox не обеспечивает слой, вам нужно, то можно попытаться задать пользовательский слой глубокого обучения. Для получения дополнительной информации смотрите, Задают Пользовательские Слои Глубокого обучения.

Если можно задать пользовательские слои для каких-либо неподдерживаемых слоев, то можно включать эти пользовательские слои в массив слоя или график слоев. В противном случае задайте модель глубокого обучения использование функции и обучите модель с помощью пользовательского учебного цикла. Для примера смотрите, Обучат сеть Используя Функцию Модели.

Deep Learning Toolbox обеспечивает выходные слои, в которых вы нуждаетесь?

Выходные слои задают функцию потерь, используемую для обучения. Deep Learning Toolbox обеспечивает различные выходные слои для задач глубокого обучения. Например, classificationLayer и regressionLayer. Для списка выходных слоев смотрите раздел Output Layers на странице List of Deep Learning Layers.

Если Deep Learning Toolbox обеспечивает выходные слои, в которых вы нуждаетесь, то можно задать график слоев с помощью этих слоев. В противном случае попытайтесь задать любые неподдерживаемые выходные слои как пользовательский слой. Для получения дополнительной информации смотрите, Задают Пользовательские Слои Глубокого обучения.

Можно ли задать неподдерживаемые выходные слои как пользовательские слои?

Если Deep Learning Toolbox не обеспечивает выходной слой, вам нужно, то можно попытаться задать пользовательский выходной слой. Для получения дополнительной информации смотрите, Задают Пользовательские Слои Глубокого обучения.

Если можно задать пользовательский выходной слой для каких-либо неподдерживаемых выходных слоев, то можно включать эти пользовательские слои в массив слоя или график слоев. В противном случае обучите модель с помощью dlnetwork возразите и пользовательский учебный цикл и задайте пользовательскую функцию потерь. Для примера смотрите, Обучат сеть Используя Пользовательский Учебный Цикл.

Делает trainingOptions функция предоставляет возможности, в которых вы нуждаетесь?

trainingOptions функция предоставляет много возможностей для настройки учебный процесс. Если trainingOptions функция предоставляет все возможности, в которых вы нуждаетесь для обучения, затем можно обучить нейронную сеть для глубокого обучения с помощью trainNetwork функция. Для примера смотрите, Создают Простую сеть глубокого обучения для Классификации.

Если trainingOptions функция не обеспечивает опцию обучения, вам нужно, например, пользовательское расписание скорости обучения, затем можно задать пользовательский учебный цикл с помощью dlnetwork объект. Для примера смотрите, Обучат сеть Используя Пользовательский Учебный Цикл.

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

|

Похожие темы