deepsparse icon indicating copy to clipboard operation
deepsparse copied to clipboard

deepsparse engine validation not working when using model instantiated batch size

Open d-smit opened this issue 3 years ago • 0 comments

I am trying to validate my sparse-quantized transfer-learned YOLOv5-m model with the following code:

!sparseml.yolov5.val_onnx --model_path yolov5_runs/train/exp6/weights/best.onnx --data yolov5/data2.yaml --imgsz 416 --batch-size 16

The model was exported after the sparse-quantized fine-tuning using:

!sparseml.yolov5.export_onnx
--weights yolov5_runs/train/exp6/weights/best.pt
--include onnx
--imgsz 416
--batch-size 16
--dynamic
--simplify

The model was trained using a batch size and image size of 16 and 416 respectively. The error I am getting:

Traceback (most recent call last): File "/usr/local/bin/sparseml.yolov5.val_onnx", line 8, in sys.exit(val_onnx()) File "/usr/local/lib/python3.7/dist-packages/sparseml/yolov5/scripts.py", line 83, in val_onnx val_onnx_run(**vars(opt)) File "/usr/local/lib/python3.7/dist-packages/yolov5/val_onnx.py", line 603, in val_onnx_run main(opt) File "/usr/local/lib/python3.7/dist-packages/yolov5/val_onnx.py", line 571, in main run(**vars(opt)) File "/usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py", line 28, in decorate_context return func(*args, **kwargs) File "/usr/local/lib/python3.7/dist-packages/yolov5/val_onnx.py", line 311, in run images=[im.numpy()], iou_thres=iou_thres, conf_thres=conf_thres File "/usr/local/lib/python3.7/dist-packages/deepsparse/pipeline.py", line 194, in call else self._run(*args, **kwargs) # Blocking call File "/usr/local/lib/python3.7/dist-packages/deepsparse/pipeline.py", line 602, in _run pipeline_outputs = self._run_with_static_batch(pipeline_inputs) File "/usr/local/lib/python3.7/dist-packages/deepsparse/pipeline.py", line 631, in _run_with_static_batch engine_outputs: List[numpy.ndarray] = self.engine_forward(engine_inputs) File "/usr/local/lib/python3.7/dist-packages/deepsparse/pipeline.py", line 576, in engine_forward return self.engine(engine_inputs) File "/usr/local/lib/python3.7/dist-packages/deepsparse/engine.py", line 235, in call return self.run(inp, val_inp) File "/usr/local/lib/python3.7/dist-packages/deepsparse/engine.py", line 347, in run self._validate_inputs(inp) File "/usr/local/lib/python3.7/dist-packages/deepsparse/engine.py", line 536, in _validate_inputs ).format(arr.shape[0], self._batch_size) ValueError: array batch size of 3 must match the batch size the model was instantiated with 16

I am using:

sparseml 1.1.1 deepsparse 1.1.0

d-smit avatar Sep 16 '22 11:09 d-smit