pytorch2onnx,view函数在mxnet中加载出错


#1

使用pytorch下预训练好的.ckpt转换成.onnx模型,然后在mxnet中使用 sym,arg,aux=onnx_mxnet.import_model(model_name)加载.onnx模型,却发现pytorch中的view()函数在这边会报错,具体报错如下:

Traceback (most recent call last):
File “F:/tool_code/pytorch2onnx4mnnet/load_mxnet.py”, line 6, in
sym, arg, aux = onnx_mxnet.import_model(model_name)
File “E:\Anaconda3\lib\site-packages\mxnet\contrib\onnx\onnx2mx\import_model.py”, line 59, in import_model
sym, arg_params, aux_params = graph.from_onnx(model_proto.graph)
File “E:\Anaconda3\lib\site-packages\mxnet\contrib\onnx\onnx2mx\import_onnx.py”, line 116, in from_onnx
mxnet_sym = self._convert_operator(node_name, op_name, onnx_attr, inputs)
File “E:\Anaconda3\lib\site-packages\mxnet\contrib\onnx\onnx2mx\import_onnx.py”, line 62, in _convert_operator
op_name, new_attrs, inputs = convert_map[op_name](attrs, inputs, self)
File “E:\Anaconda3\lib\site-packages\mxnet\contrib\onnx\onnx2mx_op_translations.py”, line 462, in reshape
reshape_shape = list(proto_obj._params[inputs[1].name].asnumpy())
KeyError: ‘identity0’

将view()函数换成reshape()函数会报同样的错误。
而且我不是很理解identity0这个key的报错含义。是层名不匹配吗?
请问如何解决这一问题?


#2

已解决,将pytorch中的x.view(-1,size)改成x.flatten(1)之后,onnx模型就不会出现identify0这种无用op层。