-
-
Notifications
You must be signed in to change notification settings - Fork 15.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue when try to validate openvino format model #13019
Comments
@FrancoArtale hello! It looks like you've encountered a couple of issues during your validation process after converting to ONNX and OpenVINO formats.
If these tips don't resolve the issues, providing a more detailed error output or further context may help pinpoint the specific cause. Thanks for your detailed inquiry, and good luck with your further YOLOv5 deployments! 😊 |
If you see the next line from val.py, it's only accept one value:
#test: 100KBDD/test/images names: It worked in other cases: |
Hey @FrancoArtale! Thanks for the additional details. 😊
For handling different aspect ratios during validation without modifying the script, consider resizing your images to square dimensions before validation as a workaround. Keep up the great work with YOLOv5! 🚀 |
Search before asking
YOLOv5 Component
Validation
Bug
The next script, to validate a trained yolov5 works well:
!python ./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/val.py --weights yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/runs/train/exp5/weights/best.pt --imgsz 1280 --data "./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/100KBDD/data.yaml"
To convert to onnx format i use (works well):
!python ./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/export.py --weights ./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/runs/train/exp5/weights/best.pt --include onnx --imgsz 736 1280 --data ./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/100KBDD/data.yaml --batch-size 1
To validate the onnx i used:
!python ./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/val.py --weights yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/runs/train/exp5/weights/best.onnx --imgsz 1280 --data "./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/100KBDD/data.yaml" --batch-size 1
here there is a problem:
Traceback (most recent call last):
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\val.py", line 438, in
main(opt)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\val.py", line 409, in main
run(**vars(opt))
File "c:\Users\franco\OneDrive\Escritorio\Final_project\project\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\val.py", line 236, in run
preds, train_out = model(im) if compute_loss else (model(im, augment=augment), None)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\project\lib\site-packages\torch\nn\modules\module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\project\lib\site-packages\torch\nn\modules\module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\models\common.py", line 666, in forward
y = self.session.run(self.output_names, {self.session.get_inputs()[0].name: im})
File "c:\Users\franco\OneDrive\Escritorio\Final_project\project\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 220, in run
return self._sess.run(output_names, input_feed, run_options)
onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument: [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Got invalid dimensions for input: images for the following indices
index: 2 Got: 1280 Expected: 736
Please fix either the inputs/outputs or the model.
But val.py doesn't accept --rect parameter. How do i fix this?
For last, i used openvino to quantized my model, nncf, etc.
Then when I tried to validate this new model int8, we have:
!python ./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/val.py --weights yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/runs/train/exp5/weights/int8_openvino_model --imgsz 1280 --data "./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/100KBDD/data.yaml" --batch-size 1
The problem here is different:
val: data=./yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/100KBDD/data.yaml, weights=['yolov5_train100kbdd/yolov5s_originsize_300epochs_lr_001/runs/train/exp5/weights/int8_openvino_model'], batch_size=1, imgsz=1280, conf_thres=0.001, iou_thres=0.6, max_det=300, task=val, device=, workers=8, single_cls=False, augment=False, verbose=False, save_txt=False, save_hybrid=False, save_conf=False, save_json=False, project=yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\runs\val, name=exp, exist_ok=False, half=False, dnn=False
YOLOv5 v7.0-294-gdb125a20 Python-3.10.9 torch-2.2.2+cpu CPU
Loading yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\runs\train\exp5\weights\int8_openvino_model for OpenVINO inference...
Traceback (most recent call last):
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\val.py", line 438, in
main(opt)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\val.py", line 409, in main
run(**vars(opt))
File "c:\Users\franco\OneDrive\Escritorio\Final_project\project\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\val.py", line 165, in run
model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half)
File "c:\Users\franco\OneDrive\Escritorio\Final_project\yolov5_train100kbdd\yolov5s_originsize_300epochs_lr_001\models\common.py", line 643, in init
if names[0] == "n01440764" and len(names) == 1000: # ImageNet
TypeError: 'NoneType' object is not subscriptable
There is a issue similar, #10180.
But my data.yaml worked well in the first case, why does it happen?
data.yaml:
#test: 100KBDD/test/images
train: 100KBDD/train/images
val: 100KBDD/valid/images
names:
0: 0
1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
nc: 8
#roboflow:
license: CC BY 4.0
project: car_part2
url: https://universe.roboflow.com/carpart2-gj01d/car_part2/dataset/1
version: 1
workspace: carpart2-gj01d
Environment
No response
Minimal Reproducible Example
No response
Additional
No response
Are you willing to submit a PR?
The text was updated successfully, but these errors were encountered: