importONNXNetwork

Импортируйте предварительно обученную сеть ONNX

Описание

Импортируйте предварительно обученную сеть из ONNX™ (Открытый Exchange Нейронной сети).

net = importONNXNetwork(modelfile,'OutputLayerType',outputtype) импортирует предварительно обученную сеть из ONNX (Открытый Exchange Нейронной сети) файл modelfile и задает выходной тип слоя импортированной сети.

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

пример

net = importONNXNetwork(modelfile,'OutputLayerType',outputtype,'Classes',classes) дополнительно задает классы для сети классификации.

Примеры

свернуть все

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

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

importONNXNetwork

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

modelfile = 'cifarResNet.onnx';
classes = ["airplane" "automobile" "bird" "cat" "dee" "dog" "frog" "horse" "ship" "truck"];
net = importONNXNetwork(modelfile,'OutputLayerType','classification','Classes',classes)
net = 

  DAGNetwork with properties:

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

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

modelfile = 'cifarResNet.onnx';
classes = ["airplane" "automobile" "bird" "cat" "deer" "dog" "frog" "horse" "ship" "truck"];
net = importONNXNetwork(modelfile, ...
    'OutputLayerType','classification', ...
    'Classes',classes)
net = 
  DAGNetwork with properties:

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

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

analyzeNetwork(net)

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

свернуть все

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

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

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

Пример: 'regression'

Классы выходного слоя, заданного как категориальный вектор, массив строк, массив ячеек из символьных векторов или 'auto'. Если Classes 'auto', затем программное обеспечение устанавливает классы на categorical(1:N), где N количество классов. Если вы задаете массив строк или массив ячеек из символьных векторов str, затем программное обеспечение устанавливает классы выходного слоя к categorical(str,str).

Типы данных: char | categorical | string | cell

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

свернуть все

Предварительно обученная сеть, возвращенная как DAGNetwork объект.

Советы

  • Если сеть ONNX содержит слой, который не поддерживает Конвертер Deep Learning Toolbox для Формата Модели ONNX, то функция возвращает сообщение об ошибке. В этом случае можно все еще использовать importONNXLayers импортировать сетевую архитектуру и веса.

    importONNXNetwork поддерживает следующие операторы 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

  • Чтобы использовать предварительно обученную сеть в прогнозе или передаче, учащейся на новых изображениях, необходимо предварительно обработать изображения таким же образом изображения, которые использовались, чтобы обучаться, импортированная модель были предварительно обработаны. Наиболее распространенные шаги предварительной обработки изменяют размер изображений, вычитая средние значения изображений, и преобразовывая изображения от изображений BGR до RGB.

    • Чтобы изменить размер изображений, используйте imresize. Например, imresize(image,[227,227,3]).

    • Чтобы преобразовать изображения от RGB до формата BGR, используйте flip. Например, flip(image,3).

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

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2018b

Ссылки

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

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

Введенный в R2018a