yolov7模型转换成paddlepaddle模型出错
Environment
OS Platform: Windows x64 Hardware: CPU Program Language: e.g. Python 3.9
fastdeploy-tools 0.0.1 x2paddle 1.3.9 paddlepaddle 2.4.0
Problem description
说明:转换的onnx模型,是从yolov7的pt模型转换过来的,使用的方法,在git的yolov7 repo的根目录下执行:
python export.py --grid --dynamic --weights weight/yolov7-finetune.pt
然后,再执行如下命令,报错信息如下:
(x2paddle) E:\git_workspace\yolov7>fastdeploy convert --framework onnx --model yolov7-finetune.onnx --save_dir pd_model
Traceback (most recent call last):
File "D:\anaconda3\envs\x2paddle\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\anaconda3\envs\x2paddle\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "D:\anaconda3\envs\x2paddle\Scripts\fastdeploy.exe\__main__.py", line 7, in <module>
File "D:\anaconda3\envs\x2paddle\lib\site-packages\common_tools\common_tools.py", line 109, in main
onnx2paddle(
TypeError: onnx2paddle() got an unexpected keyword argument 'input_shape_dict'
@lifw555 可以手动安装一下X2Paddle最新版本解决这个问题
git clone https://github.com/PaddlePaddle/X2Paddle.git
cd X2Paddle
python setup.py install
我们这周会发布新的X2Paddle的包~
还是不好使。报一样的错误。
不过,我暂时不用了,重新使用paddlepaddle训练了。
@wjj19950828 直接使用xpaddle执行,x2paddle是develop分支,本地 pip setup.py install 安装的。
最新的报错信息如下:
(x2paddle) E:\git_workspace\X2Paddle>x2paddle --framework onnx --model test.onnx --save_dir pd_model
model ir_version: 7, op version: 12
Shape inferencing ...
Stopping at incomplete shape inference at EfficientNMS_TRT: x2paddle_num_dets
node inputs:
name: "x2paddle__end2end_Slice_output_0"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 1
}
dim {
dim_value: 25200
}
dim {
dim_value: 4
}
}
}
}
name: "x2paddle__end2end_Mul_output_0"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 1
}
dim {
dim_value: 25200
}
dim {
dim_value: 33
}
}
}
}
node outputs:
name: "x2paddle_num_dets"
type {
tensor_type {
elem_type: 0
}
}
name: "x2paddle_det_boxes"
type {
tensor_type {
elem_type: 0
}
}
name: "x2paddle_det_scores"
type {
tensor_type {
elem_type: 0
}
}
name: "x2paddle_det_classes"
type {
tensor_type {
elem_type: 0
}
}
!!!!!!!!!!
Shape inferenced.
D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py:362: DeprecationWarning: `mapping.TENSOR_TYPE_TO_NP_TYPE` is now deprecated and will be removed in the next release or so.To silence this warning, please use `helper.{self._future_function}` instead.
TENSOR_TYPE_TO_NP_TYPE[item.type.tensor_type.elem_type],
Traceback (most recent call last):
File "D:\anaconda3\envs\x2paddle\Scripts\x2paddle-script.py", line 33, in <module>
sys.exit(load_entry_point('x2paddle==1.3.9', 'console_scripts', 'x2paddle')())
File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\convert.py", line 489, in main
onnx2paddle(
File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\convert.py", line 303, in onnx2paddle
model = ONNXDecoder(model_path, input_shape_dict, enable_onnx_checker)
File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py", line 402, in __init__
self.graph = ONNXGraph(onnx_model, input_shape_dict)
File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py", line 197, in __init__
self.collect_value_infos()
File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py", line 362, in collect_value_infos
TENSOR_TYPE_TO_NP_TYPE[item.type.tensor_type.elem_type],
File "D:\anaconda3\envs\x2paddle\lib\site-packages\onnx\mapping.py", line 105, in __getitem__
return super().__getitem__(key)
KeyError: 0
本地安装的组件如下:
(x2paddle) E:\git_workspace\X2Paddle>pip list
Package Version
---------------------------- ---------
absl-py 1.3.0
astor 0.8.1
astunparse 1.6.3
brotlipy 0.7.0
cachetools 5.2.0
certifi 2022.9.24
cffi 1.15.1
charset-normalizer 2.0.4
coloredlogs 15.0.1
cryptography 38.0.1
decorator 5.1.1
fastdeploy-tools 0.0.1
flatbuffers 22.11.23
gast 0.4.0
google-auth 2.15.0
google-auth-oauthlib 0.4.6
google-pasta 0.2.0
grpcio 1.51.1
h5py 3.7.0
humanfriendly 10.0
idna 3.4
importlib-metadata 5.2.0
keras 2.11.0
libclang 14.0.6
Markdown 3.4.1
MarkupSafe 2.1.1
mkl-fft 1.3.1
mkl-random 1.2.2
mkl-service 2.4.0
mpmath 1.2.1
numpy 1.23.3
oauthlib 3.2.2
onnx 1.13.0
onnxruntime 1.13.1
opt-einsum 3.3.0
packaging 22.0
paddle-bfloat 0.1.7
paddlepaddle 2.4.0
Pillow 9.2.0
pip 22.2.2
protobuf 3.20.3
pyasn1 0.4.8
pyasn1-modules 0.2.8
pycparser 2.21
pyOpenSSL 22.0.0
pyreadline3 3.4.1
PySocks 1.7.1
requests 2.28.1
requests-oauthlib 1.3.1
rsa 4.9
setuptools 65.5.0
six 1.16.0
sympy 1.11.1
tensorboard 2.11.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit 1.8.1
tensorflow 2.11.0
tensorflow-estimator 2.11.0
tensorflow-intel 2.11.0
tensorflow-io-gcs-filesystem 0.29.0
termcolor 2.1.1
torch 1.13.0
torchaudio 0.13.0
torchvision 0.14.0
typing_extensions 4.3.0
urllib3 1.26.12
Werkzeug 2.2.2
wheel 0.37.1
win-inet-pton 1.1.0
wincertstore 0.2
wrapt 1.14.1
x2paddle 1.3.9
zipp 3.11.0
导出 onnx时, 去掉 --dynamic 参数就可以了 这里的例子参数有问题:https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/vision/detection/yolov7#%E5%AF%BC%E5%87%BAonnx%E6%A8%A1%E5%9E%8B
可以正常转换的onnx导出命令,如下:
python models/export.py --grid --weights PATH/TO/yolov7.pt
@wjj19950828 直接使用xpaddle执行,x2paddle是develop分支,本地 pip setup.py install 安装的。
最新的报错信息如下:
(x2paddle) E:\git_workspace\X2Paddle>x2paddle --framework onnx --model test.onnx --save_dir pd_model model ir_version: 7, op version: 12 Shape inferencing ... Stopping at incomplete shape inference at EfficientNMS_TRT: x2paddle_num_dets node inputs: name: "x2paddle__end2end_Slice_output_0" type { tensor_type { elem_type: 1 shape { dim { dim_value: 1 } dim { dim_value: 25200 } dim { dim_value: 4 } } } } name: "x2paddle__end2end_Mul_output_0" type { tensor_type { elem_type: 1 shape { dim { dim_value: 1 } dim { dim_value: 25200 } dim { dim_value: 33 } } } } node outputs: name: "x2paddle_num_dets" type { tensor_type { elem_type: 0 } } name: "x2paddle_det_boxes" type { tensor_type { elem_type: 0 } } name: "x2paddle_det_scores" type { tensor_type { elem_type: 0 } } name: "x2paddle_det_classes" type { tensor_type { elem_type: 0 } } !!!!!!!!!! Shape inferenced. D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py:362: DeprecationWarning: `mapping.TENSOR_TYPE_TO_NP_TYPE` is now deprecated and will be removed in the next release or so.To silence this warning, please use `helper.{self._future_function}` instead. TENSOR_TYPE_TO_NP_TYPE[item.type.tensor_type.elem_type], Traceback (most recent call last): File "D:\anaconda3\envs\x2paddle\Scripts\x2paddle-script.py", line 33, in <module> sys.exit(load_entry_point('x2paddle==1.3.9', 'console_scripts', 'x2paddle')()) File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\convert.py", line 489, in main onnx2paddle( File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\convert.py", line 303, in onnx2paddle model = ONNXDecoder(model_path, input_shape_dict, enable_onnx_checker) File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py", line 402, in __init__ self.graph = ONNXGraph(onnx_model, input_shape_dict) File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py", line 197, in __init__ self.collect_value_infos() File "D:\anaconda3\envs\x2paddle\lib\site-packages\x2paddle-1.3.9-py3.9.egg\x2paddle\decoder\onnx_decoder.py", line 362, in collect_value_infos TENSOR_TYPE_TO_NP_TYPE[item.type.tensor_type.elem_type], File "D:\anaconda3\envs\x2paddle\lib\site-packages\onnx\mapping.py", line 105, in __getitem__ return super().__getitem__(key) KeyError: 0本地安装的组件如下:
(x2paddle) E:\git_workspace\X2Paddle>pip list Package Version ---------------------------- --------- absl-py 1.3.0 astor 0.8.1 astunparse 1.6.3 brotlipy 0.7.0 cachetools 5.2.0 certifi 2022.9.24 cffi 1.15.1 charset-normalizer 2.0.4 coloredlogs 15.0.1 cryptography 38.0.1 decorator 5.1.1 fastdeploy-tools 0.0.1 flatbuffers 22.11.23 gast 0.4.0 google-auth 2.15.0 google-auth-oauthlib 0.4.6 google-pasta 0.2.0 grpcio 1.51.1 h5py 3.7.0 humanfriendly 10.0 idna 3.4 importlib-metadata 5.2.0 keras 2.11.0 libclang 14.0.6 Markdown 3.4.1 MarkupSafe 2.1.1 mkl-fft 1.3.1 mkl-random 1.2.2 mkl-service 2.4.0 mpmath 1.2.1 numpy 1.23.3 oauthlib 3.2.2 onnx 1.13.0 onnxruntime 1.13.1 opt-einsum 3.3.0 packaging 22.0 paddle-bfloat 0.1.7 paddlepaddle 2.4.0 Pillow 9.2.0 pip 22.2.2 protobuf 3.20.3 pyasn1 0.4.8 pyasn1-modules 0.2.8 pycparser 2.21 pyOpenSSL 22.0.0 pyreadline3 3.4.1 PySocks 1.7.1 requests 2.28.1 requests-oauthlib 1.3.1 rsa 4.9 setuptools 65.5.0 six 1.16.0 sympy 1.11.1 tensorboard 2.11.0 tensorboard-data-server 0.6.1 tensorboard-plugin-wit 1.8.1 tensorflow 2.11.0 tensorflow-estimator 2.11.0 tensorflow-intel 2.11.0 tensorflow-io-gcs-filesystem 0.29.0 termcolor 2.1.1 torch 1.13.0 torchaudio 0.13.0 torchvision 0.14.0 typing_extensions 4.3.0 urllib3 1.26.12 Werkzeug 2.2.2 wheel 0.37.1 win-inet-pton 1.1.0 wincertstore 0.2 wrapt 1.14.1 x2paddle 1.3.9 zipp 3.11.0
请问一下这个问题解决了吗,我现在也遇到了同样的问题
没尝试了。