es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede cargar el modelo ONNX convertido desde MXNet.

Estoy intentando lanzar el modelo R100 (mxnet) desde aquí:
https://github.com/deepinsight/insightface/tree/master/model_zoo
Lo convertí a onnx con esto:

sym = './model-symbol.json'
params = './model-0000.params'
input_shape = (1,3,112,112)
onnx_file = './R100_mxnet.onnx'
converted_model_path = onnx_mxnet.export_model(sym, params, [input_shape], np.float32, onnx_file)

Esta comprobación se pasa correctamente:

model_proto = onnx.load_model('./R100_mxnet.onnx')
checker.check_graph(model_proto.graph)

Pero cuando intento hacer una inferencia con esto:

classifier.run(None, {'data': np.ones([1, 3, 112, 112]).astype('float32')})[0].shape

Obtengo:

~/.local/lib/python3.6/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py in run(self, output_names, input_feed, run_options)
    190             output_names = [output.name for output in self._outputs_meta]
    191         try:
--> 192             return self._sess.run(output_names, input_feed, run_options)
    193         except C.EPFail as err:
    194             if self._enable_fallback:

Fail: [ONNXRuntimeError] : 1 : FAIL : Non-zero status code returned while running PRelu node. Name:'conv_1_relu' Status Message: conv_1_relu: left operand cannot broadcast on dim 3 LeftShape: {1,64,56,56}, RightShape: {64}

¿Es un error al exportar o al importar y puedo solucionarlo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error ocurre durante el proceso de inferencia y no durante la conversión de mxnet a onnx. El mensaje de error sugiere que hay un problema con la difusión en la tercera dimensión del tensor de entrada.

    Para solucionar este problema, puedes intentar modificar las formas de los tensores de entrada para que coincidan con las esperadas por el modelo. Puedes encontrar las formas de entrada esperadas tanto en el archivo de arquitectura del modelo como utilizando el sitio web del model zoo de onnx.

    Alternativamente, puedes intentar actualizar la versión de onnxruntime que se está utilizando o volver a compilarlo desde el código fuente para asegurar la compatibilidad con el modelo R100.

    Además, puede ser útil verificar si el modelo fue originalmente entrenado y probado en el mismo formato de datos y rango que los datos de entrada que se utilizan durante la inferencia. La preprocesamiento de los datos de entrada para que coincidan con el formato esperado también puede ayudar a resolver el problema.

Comments are closed.