Выберите Function to Import ONNX Pretrained Network

Конвертер Deep Learning Toolbox™ для Формата Модели ONNX™ обеспечивает три функции, чтобы импортировать предварительно обученную сеть ONNX (Open Neural Network Exchange): importONNXNetwork, importONNXLayers, и importONNXFunction.

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

Flow chart for selecting ONNX import function

Примечание

По умолчанию, importONNXNetwork и importONNXLayers попытайтесь сгенерировать пользовательский слой, когда программное обеспечение не сможет преобразовать оператор ONNX в эквивалентный встроенный MATLAB® слой. Для списка операторов, для которых программное обеспечение поддерживает преобразование, см. Операторы ONNX, Поддержанные для Преобразования на Встроенные Слои MATLAB.

importONNXNetwork и importONNXLayers сохраните сгенерированные пользовательские слои в пакете +PackageName в текущей папке.

importONNXNetwork и importONNXLayers автоматически не генерируйте пользовательский слой для каждого оператора ONNX, который не поддерживается для преобразования на встроенный слой MATLAB.

Решения

Эта таблица описывает каждое решение в рабочем процессе для выбора функции импорта ONNX.

РешениеОписание
Действительно ли все - операторы ONNX, поддержанные для преобразования на эквивалентные встроенные слои MATLAB, или программное обеспечение может автоматически сгенерировать пользовательские слои?
  • Если импортированная сеть содержит оператор ONNX, не поддержанный для преобразования на встроенный слой MATLAB (см. Операторы ONNX, Поддержанные для Преобразования на Встроенные Слои MATLAB), и importONNXNetwork не генерирует пользовательский слой, затем importONNXNetwork возвращает ошибку.

  • Если импортированная сеть содержит оператор ONNX, не поддержанный для преобразования на встроенный слой MATLAB и importONNXLayers не генерирует пользовательский слой, затем importONNXLayers вставляет слой заполнителя вместо неподдерживаемого слоя.

  • importONNXFunction поддержки большинство операторов ONNX. Для получения дополнительной информации см. Операторы ONNX Это Поддержки importONNXFunction.

Вы развернете импортированную сеть?Если вы используете importONNXNetwork или importONNXLayers, можно сгенерировать код для импортированной сети. Создать DAGNetwork объект для генерации кода, смотрите Предварительно обученные сети Загрузки для Генерации кода (MATLAB Coder).
Вы загрузите импортированную сеть с Deep Network Designer?Если вы используете importONNXNetwork или importONNXLayers, можно загрузить импортированную сеть с приложением Deep Network Designer.
Если вы переобучите импортированную сеть, вы будете использовать пользовательский учебный цикл?
  • Если вы используете importONNXFunction, можно переобучить импортированную сеть только с пользовательским учебным циклом. Для примера смотрите, Обучают Импортированную Функцию ONNX Используя Пользовательский Учебный Цикл.

  • Использование importONNXNetwork с TargetNetwork заданный как "dlnetwork" импортировать сеть как dlnetwork объект. dlnetwork включает поддержку пользовательских учебных циклов с помощью автоматического дифференцирования.

  • Использование importONNXLayers с TargetNetwork заданный как "dlnetwork" импортировать сеть как LayerGraph объект, совместимый с dlnetwork объект. Затем преобразуйте график слоев в dlnetwork при помощи dlnetwork.

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

Действия

Эта таблица описывает каждое действие в рабочем процессе для выбора функции импорта ONNX.

ДействиеОписание
Использование importONNXNetworkimportONNXNetwork возвращает DAGNetwork или dlnetwork объект, который готов использовать для предсказания (для получения дополнительной информации, смотрите TargetNetwork аргумент значения имени). Предскажите метки класса при помощи classify функция на DAGNetwork возразите или predict функция на dlnetwork объект.
Использование importONNXLayersimportONNXLayers возвращает LayerGraph объект, совместимый с DAGNetwork или dlnetwork объект (для получения дополнительной информации, смотрите TargetNetwork аргумент значения имени). importONNXLayers вставляет слои заполнителя вместо неподдерживаемых слоев. Найдите и замените слои заполнителя. Затем можно собрать график слоев при помощи assembleNetwork, который возвращает DAGNetwork объект, или преобразуют график слоев в dlnetwork объект при помощи dlnetwork.
Использование importONNXFunctionimportONNXFunction возвращает ONNXParameters объект, который содержит сетевые параметры и функцию модели (см. Импортированную Функцию Модели ONNX), который содержит сетевую архитектуру. ONNXParameters возразите и функция модели готовы использовать для предсказания. Для примера смотрите, Предсказывают Используя Импортированную Функцию ONNX.
Найдите и замените слои заполнителяЧтобы найти имена и индексы слоев заполнителя в импортированной сети, используйте findPlaceholderLayers функция. Затем можно заменить слой заполнителя на новый слой, который вы задаете. Чтобы заменить слой, использовать replaceLayer.

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

| | | | | |

Похожие темы