importONNXLayers

Импортируйте слои из сети ONNX

Импортируйте слои из сети ONNX™ (Open Neural Network Exchange).

При помощи ONNX как промежуточный формат можно импортировать модели из других сред глубокого обучения, которые поддерживают экспорт модели ONNX, такой как TensorFlow™, PyTorch, Caffe2, Microsoft® Cognitive Toolkit (CNTK), Базовый ML и Apache MXNet™.

Синтаксис

layers = importONNXLayers(modelfile)
layers = importONNXLayers(modelfile,Name,Value)

Описание

пример

layers = importONNXLayers(modelfile) импортирует слои сети ONNX (Open Neural Network Exchange) из файла modelfile. Можно обучить импортированные слои на новом наборе данных или собрать слои в сеть, готовую к прогнозу. Для примера рабочего процесса сборки сети смотрите, Собирают Сеть от Предварительно обученных Слоев Keras.

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

пример

layers = importONNXLayers(modelfile,Name,Value) импортирует слои из сети ONNX с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".

Например, importONNXLayers(modelfile,'ImportWeights',false) импортирует сетевую архитектуру без весов из файла modelfile.

Примеры

свернуть все

Загрузите и установите Конвертер Deep Learning Toolbox для Образцового пакета поддержки Формата ONNX.

Введите importONNXLayers в командной строке.

importONNXLayers

Если Конвертер Deep Learning Toolbox для Образцового Формата ONNX не установлен, то функция обеспечивает ссылку на необходимый пакет поддержки в Add-On Explorer. Чтобы установить пакет поддержки, щелкните по ссылке, и затем нажмите Install. Проверяйте, что установка успешна путем импорта сети из образцового файла 'cifarResNet.onnx' в командной строке. Если пакет поддержки установлен, то функция возвращает объект DAGNetwork.

modelfile = 'cifarResNet.onnx';
layers = importONNXLayers(modelfile,'OutputLayerType','classification')
layers = 

  LayerGraph with properties:

         Layers: [77×1 nnet.cnn.layer.Layer]
    Connections: [85×2 table]

Импортируйте архитектуру и веса остаточной нейронной сети, обученной на наборе данных CIFAR-10. Задайте файл, содержащий сеть ONNX и тип выходного слоя, чтобы добавить к импортированной сети.

modelfile = 'cifarResNet.onnx';
lgraph = importONNXLayers(modelfile, ...
    'OutputLayerType','classification', ...
    'ImportWeights',true)
lgraph = 
  LayerGraph with properties:

         Layers: [77×1 nnet.cnn.layer.Layer]
    Connections: [85×2 table]

Анализируйте импортированную сетевую архитектуру.

analyzeNetwork(lgraph);

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

свернуть все

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

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

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

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

Пример: importONNXLayers(modelfile,'OutputLayerType','classification') импортирует сетевые слои из modelfile и добавляет выходной слой для классификации выходной слой в конце импортированных слоев.

Тип выходного слоя, который функция добавляет в конец импортированной сетевой архитектуры, заданной как 'classification', 'regression' или 'pixelclassification'. Используя 'pixelclassification' добавляет объект pixelClassificationLayer (требует Computer Vision Toolbox™).

Пример: 'OutputLayerType','regression'

Индикатор, чтобы импортировать веса, а также сетевую архитектуру, заданную или как false или как true.

Пример: 'ImportWeights',true

Типы данных: логический

Выходные аргументы

свернуть все

Сетевая архитектура, возвращенная как объект LayerGraph.

Советы

  • Если сеть ONNX содержит слой, который не поддерживает Конвертер Deep Learning Toolbox для Образцового Формата ONNX, то importONNXLayers вставляет слой заполнителя вместо неподдерживаемого слоя. Чтобы найти имена и индексы неподдерживаемых слоев в сети, используйте функцию findPlaceholderLayers. Затем можно заменить слой заполнителя на новый слой, который вы задаете. Чтобы заменить слой, используйте replaceLayer.

    importONNXLayers поддерживает следующие операторы ONNX с некоторыми ограничениями:

    • Add

    • AveragePool

    • BatchNormalization

    • Clip

    • Concat

    • Conv

    • ConvTranspose

    • Div

    • Dropout

    • Flatten

    • Gemm

    • GlobalAveragePool

    • Identity

    • LRN

    • LSTM

    • LeakyRelu

    • MaxPool

    • MatMul

    • Mul

    • PRelu

    • Relu

    • Reshape

    • Sigmoid

    • Softmax

    • Sub

    • Sum

    • Tanh

    • ImageScaler

  • Рабочий процесс для сборки слоев, импортированных из ONNX в сеть, готовую к прогнозу, совпадает с собирающимися слоями, импортированными из Keras. Для примера этого рабочего процесса смотрите, Собирают Сеть от Предварительно обученных Слоев Keras.

Ссылки

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

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

Введенный в R2018a