Contenido principal

exportONNXNetwork

Exportar una red al formato de modelo ONNX

Descripción

exportONNXNetwork(net,filename) exporta la red de deep learning net con pesos al archivo con formato ONNX™ filename. Si filename existe, exportONNXNetwork sobrescribe el archivo.

Esta función requiere el paquete de soporte Deep Learning Toolbox™ Converter for ONNX Model Format. Si no ha instalado el paquete de soporte, la función proporciona un enlace de descarga.

ejemplo

exportONNXNetwork(net,filename,Name=Value) exporta una red usando opciones adicionales especificadas por uno o más argumentos nombre-valor. Por ejemplo, puede especificar el nombre y el tamaño del lote de la red ONNX.

Ejemplos

contraer todo

Cargue la red neuronal convolucional SqueezeNet preentrenada.

net = imagePretrainedNetwork("squeezenet")
net = 
  dlnetwork with properties:

         Layers: [68×1 nnet.cnn.layer.Layer]
    Connections: [75×2 table]
     Learnables: [52×3 table]
          State: [0×3 table]
     InputNames: {'data'}
    OutputNames: {'prob_flatten'}
    Initialized: 1

  View summary with summary.

net es un objeto dlnetwork que contiene capas y los parámetros de la red que se pueden aprender, entre otras propiedades.

Analice la red.

analyzeNetwork(net)

exportONNXNetwork_analyeNetwork.png

analyzeNetwork muestra una gráfica interactiva de la arquitectura de la red y una tabla que contiene información sobre las capas de la red. También puede detectar errores y problemas en la red net antes de exportarla al formato ONNX. net no tiene errores.

Exporte la red net como un archivo con formato ONNX llamado squeezenet.onnx. Guarde el archivo en la carpeta actual. Si el paquete de soporte Deep Learning Toolbox Converter for ONNX Model Format no está instalado, exportONNXNetwork proporciona un enlace al paquete de soporte correspondiente en Add-On Explorer. Para instalar el paquete de soporte, haga clic en el enlace y, después, en Install.

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

Ahora puede importar el archivo squeezenet.onnx en cualquier marco de deep learning que admita la importación de ONNX.

Argumentos de entrada

contraer todo

Red entrenada o gráfica de capas de red, especificada como un objeto dlnetwork.

Puede obtener una red entrenada de las siguientes formas:

  • Importe una red entrenada utilizando la función imagePretrainedNetwork.

  • Entrene un objeto dlnetwork utilizando la función trainnet o un bucle de entrenamiento personalizado.

exportONNXNetwork requiere net para no tener errores. Puede detectar errores y problemas en una red entrenada antes de exportarla a una red ONNX usando analyzeNetwork.

Nombre del archivo, especificado como vector de caracteres o escalar de cadena.

Ejemplo: "network.onnx"

Argumentos de par nombre-valor

contraer todo

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: exportONNXNetwork(net,filename,NetworkName="my_net") exporta una red y especifica "my_net" como el nombre de red en la red ONNX guardada.

Nombre de la red ONNX que desea almacenar en el archivo guardado, especificado como un vector de caracteres o un escalar de cadena.

Ejemplo: NetworkName="my_squeezenet"

Versión del conjunto de operadores de ONNX que se desea usar en el modelo exportado, especificada como un entero positivo en el intervalo [6 20]. Si el conjunto de operadores predeterminado no admite la red que está intentando exportar, pruebe una versión posterior. Si importa la red exportada a otro marco y utilizó un conjunto de operadores durante la exportación que el importador no admite, la importación puede fallar.

Para asegurarse de que utiliza la versión adecuada del conjunto de operadores, consulte la documentación del operador de ONNX [3]. Por ejemplo, OpsetVersion=9 exporta maxUnpooling2dLayer al operador MaxUnpool-9 de ONNX.

Ejemplo: OpsetVersion=6

Tamaño del lote de la red ONNX, especificado como [] o un entero positivo. Si especifica BatchSize como [], la red ONNX tiene un tamaño de lote dinámico. Si especifica BatchSize como un entero positivo k, la red ONNX tiene un tamaño de lote fijo de k.

Ejemplo: BatchSize=10

Limitaciones

  • exportONNXNetwork admite:

    • La versión 9 de representación intermedia de ONNX.

    • Las versiones 6 a 20 de conjuntos de operadores de ONNX.

  • exportONNXNetwork no exporta ajustes o propiedades relacionadas con el entrenamiento de redes como opciones de entrenamiento, factores de tasa de aprendizaje o factores de regularización.

  • Si exporta una red que contiene una capa que el formato ONNX no admite (consulte Capas admitidas para la exportación de ONNX), exportONNXNetwork guarda un operador de ONNX de marcador de posición en lugar de la capa no admitida y devuelve una advertencia. No puede importar una red ONNX con un operador de marcador de posición en otros marcos de deep learning.

  • Dadas las diferencias de arquitectura entre MATLAB® y ONNX, una red exportada puede tener una estructura distinta en comparación con la red original.

Nota

Si importa una red exportada, es posible que algunas capas de la red reimportada difieran de algunas capas de la red original y es posible que no se admitan.

Más acerca de

contraer todo

Sugerencias

  • Puede exportar una red de deep learning de MATLAB entrenada que incluya varias entradas y varias salidas al formato de modelo ONNX. Para obtener información sobre una red de deep learning multi-entrada y multi-salida, consulte Redes multi-entrada y multi-salida.

Referencias

[1] Open Neural Network Exchange. https://github.com/onnx/.

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

Historial de versiones

Introducido en R2018a

expandir todo