exportONNXNetwork

Экспорт сети в формат модели ONNX

Описание

пример

exportONNXNetwork(net,filename) экспортирует нейронную сеть для глубокого обучения net с весами к файлу формата ONNX™ filename. Если filename существует, затем exportONNXNetwork перезаписывает файл.

Эта функция требует Конвертера Deep Learning Toolbox™ для пакета поддержки Формата Модели ONNX. Если этот пакет поддержки не установлен, то функция обеспечивает ссылку на загрузку.

exportONNXNetwork(net,filename,Name,Value) экспортирует сеть с помощью дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение".

Примеры

свернуть все

Загрузите предварительно обученную сверточную нейронную сеть SqueezeNet.

net = squeezenet
  DAGNetwork with properties:

         Layers: [68×1 nnet.cnn.layer.Layer]
    Connections: [75×2 table]
     InputNames: {'data'}
    OutputNames: {'ClassificationLayer_predictions'}

Экспортируйте сеть как файл формата ONNX в текущей папке под названием squeezenet.onnx. Если Конвертер Deep Learning Toolbox для пакета поддержки Формата Модели ONNX не установлен, то функция обеспечивает ссылку на необходимый пакет поддержки в Add-On Explorer. Чтобы установить пакет поддержки, щелкните по ссылке, и затем нажмите Install.

filename = 'squeezenet.onnx';
exportONNXNetwork(net,filename)

Теперь можно импортировать squeezenet.onnx файл в любую среду глубокого обучения, которая поддерживает импорт ONNX.

Входные параметры

свернуть все

Обучивший сеть или график слоев сети в виде SeriesNetwork, DAGNetwork, dlnetwork, или layerGraph объект.

Можно получить обучивший сеть (SeriesNetwork, DAGNetwork, или dlnetwork) этими способами:

  • Импортируйте предварительно обученную сеть. Например, используйте googlenet функция.

  • Обучите свою собственную сеть. Использование trainNetwork обучать SeriesNetwork или DAGNetwork. Используйте пользовательский учебный цикл, чтобы обучить dlnetwork.

layerGraph объект является графиком слоев сети. Некоторые параметры слоя этого графика могут быть пустыми (например, веса и смещение слоев свертки, и среднее значение и отклонение слоев нормализации партии.). Перед использованием layerGraph как входной параметр к exportONNXNetwork, инициализируйте пустые параметры путем присвоения случайных значений. В качестве альтернативы можно сделать одно из следующих перед экспортом:

  • Преобразуйте layerGraph к dlnetwork при помощи layerGraph как входной параметр к dlnetwork. Пустые параметры автоматически инициализируются.

  • Преобразуйте layerGraph к обученному DAGNetwork при помощи trainNetwork. Используйте layerGraph как layers входной параметр к trainNetwork.

Можно обнаружить ошибки и проблемы в обучившем сеть или графике слоев сети прежде, чем экспортировать в сеть ONNX при помощи analyzeNetwork. exportONNXNetwork требует SeriesNetwork, DAGNetwork, и dlnetwork быть безошибочным. exportONNXNetwork разрешения, экспортирующие layerGraph с отсутствием или несвязанным выходным слоем.

Имя файла в виде вектора символов или строкового скаляра.

Пример: 'network.onnx'

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: exportONNXNetwork(net,filename,'NetworkName','my_net') экспортирует сеть и задает 'my_net' как сетевое имя в сохраненной сети ONNX.

Имя сети ONNX, чтобы сохранить в сохраненном файле в виде вектора символов или строкового скаляра.

Пример: 'my_squeezenet'

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

Чтобы гарантировать, что вы используете соответствующую версию набора оператора, консультируйтесь с документацией оператора ONNX [3]. Например, 'OpsetVersion',9 экспортирует maxUnpooling2dLayer к MaxUnpool-9 Оператор ONNX.

Пример 6

Ограничения

  • Из-за архитектурных различий между MATLAB® и ONNX, экспортируемая сеть может иметь отличную структуру по сравнению с исходной сетью.

Примечание

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

Советы

Ссылки

[1] Открытый Exchange Нейронной сети. https://github.com/onnx/.

[2] ONNX. https://onnx.ai/.

Введенный в R2018a