YOLO-World
YOLO-World copied to clipboard
about deploy
在python deploy.py的时候,转onnx或者trt,报错的日志如下。模型是自己微调之后的。
Switch model to deploy modality.
Process Process-2:
Traceback (most recent call last):
File "/home/bowen/anaconda3/envs/yolo8/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/home/bowen/anaconda3/envs/yolo8/lib/python3.8/multiprocessing/process.py", line 108, in run
self._target(*self.args, **self.kwargs)
File "/home/bowen/anaconda3/envs/yolo8/lib/python3.8/site-packages/mmdeploy/apis/core/pipeline_manager.py", line 107, in call
ret = func(*args, **kwargs)
File "/home/bowen/anaconda3/envs/yolo8/lib/python3.8/site-packages/mmdeploy/apis/pytorch2onnx.py", line 64, in torch2onnx
data, model_inputs = task_processor.create_input(
File "/home/bowen/anaconda3/envs/yolo8/lib/python3.8/site-packages/mmdeploy/codebase/mmdet/deploy/object_detection.py", line 217, in create_input
data = test_pipeline(data)
File "/home/bowen/anaconda3/envs/yolo8/lib/python3.8/site-packages/mmcv/transforms/base.py", line 12, in call
return self.transform(results)
File "/home/bowen/anaconda3/envs/yolo8/lib/python3.8/site-packages/mmcv/transforms/wrappers.py", line 88, in transform
results = t(results) # type: ignore
File "/media/bowen/6202c499-4f0a-4280-af7e-d2ab4b6c74dd/home/bowen/YOLO-World-master/./yolo_world/datasets/transformers/mm_transforms.py", line 114, in call
assert 'texts' in results or hasattr(self, 'class_texts'), (
AssertionError: No texts found in results.
03/06 22:50:35 - mmengine - ERROR - /home/bowen/anaconda3/envs/yolo8/lib/python3.8/site-packages/mmdeploy/apis/core/pipeline_manager.py - pop_mp_output - 80 - mmdeploy.apis.pytorch2onnx.torch2onnx with Call id: 0 failed. exit.
请问怎么解决?
这个我解决了,上一个issue里回复你了。但这个解决之后,还会无尽地报问题,我挨着解决了两天了,还是有新问题
其他人有成功转出onnx or tensorrt的嘛?
在处理了,这两天会随一个新feature一并更新,大家可以把遇到的问题或者潜在的solution共享一下,感谢支持!
在处理了,这两天会随一个新feature一并更新,大家可以把遇到的问题或者潜在的solution共享一下,感谢支持!
在处理了,这两天会随一个新feature一并更新,大家可以把遇到的问题或者潜在的solution共享一下,感谢支持!
在处理了,这两天会随一个新feature一并更新,大家可以把遇到的问题或者潜在的solution共享一下,感谢支持!
- yolo_world的extract_feat()接口、yolo_world_head的predict()接口,形参和mmdeploy的接口不一样:extract_feat()多需要一个"batch_data_samples",predict()需要img_feat和txt_feature。这导致调用到这儿时就会报错。我把这儿按如下改了:
x = self.extract_feat(batch_inputs)output = self.bbox_head.predict(x, data_samples, rescale=False)改成img_feats, txt_feats = self.extract_feat(batch_inputs, data_samples)output = self.bbox_head.predict(img_feats, txt_feats, data_samples, rescale=False)当然也可以修改extract_feat()和predict(),避免修改通用的mmdeploy。
2.用yolov8作为对比例子: yolo_world_head和yolov8_head都继承自yolov5_head,而yolov5_head的predict_by_feat()接口,为了部署,是有重写的,即yolov5_head__predict_by_feat()。 yolov8_head自身没有重写predict_by_feat()接口,因此会调用yolov5_head的predict_by_feat(),即在部署时也就调用了yolov5_head__predict_by_feat()。 而yolo_world_head不一样,是重写了predict_by_feat()的(虽然和yolov5_head的一字不差...),这就导致不会调用yolov5_head__predict_by_feat(),转换失败。 解决办法是删除predict_by_feat()即可。
这样我转换出来了一个onnx文件,但貌似其中包含了CLIP部分。你们的demo网站上,是可以一键deploy一个onnx文件出来的 而且融合了CLIP部分,不太清楚为什么相应功能在github仓里没有提供。
在处理了,这两天会随一个新feature一并更新,大家可以把遇到的问题或者潜在的solution共享一下,感谢支持!
- yolo_world的extract_feat()接口、yolo_world_head的predict()接口,形参和mmdet的通用接口是不一样的:extract_feat()多需要一个"batch_data_samples",predict()需要img_feat和txt_feature。这导致调用到这儿时就会报错。我把这儿按如下改了:
x = self.extract_feat(batch_inputs)output = self.bbox_head.predict(x, data_samples, rescale=False)改成img_feats, txt_feats = self.extract_feat(batch_inputs, data_samples)output = self.bbox_head.predict(img_feats, txt_feats, data_samples, rescale=False)当然也可以修改extract_feat()和predict(),避免修改通用的mmdeploy。2.用yolov8作为对比例子: yolo_world_head和yolov8_head都继承自yolov5_head,而yolov5_head的predict_by_feat()接口,为了部署,是有重写的,即yolov5_head__predict_by_feat()。 yolov8_head自身没有重写predict_by_feat()接口,因此会调用yolov5_head的predict_by_feat(),即在部署时也就调用了yolov5_head__predict_by_feat()。 而yolo_world_head不一样,是重写了predict_by_feat()的(虽然和yolov5_head的一字不差...),这就导致不会调用yolov5_head__predict_by_feat(),转换失败。 解决办法是删除predict_by_feat()即可。
这样我转换出来了一个onnx文件,但貌似其中包含了CLIP部分。你们的demo网站上,是可以一键deploy一个onnx文件出来的 而且融合了CLIP部分,不太清楚为什么相应功能在github仓里没有提供。
大佬,我的报错也是你说的这样,我按你说的方法转了,我直接转的trt。
在处理了,这两天会随一个新feature一并更新,大家可以把遇到的问题或者潜在的solution共享一下,感谢支持!
- yolo_world的extract_feat()接口、yolo_world_head的predict()接口,形参和mmdet的通用接口是不一样的:extract_feat()多需要一个"batch_data_samples",predict()需要img_feat和txt_feature。这导致调用到这儿时就会报错。我把这儿按如下改了:
x = self.extract_feat(batch_inputs)output = self.bbox_head.predict(x, data_samples, rescale=False)改成img_feats, txt_feats = self.extract_feat(batch_inputs, data_samples)output = self.bbox_head.predict(img_feats, txt_feats, data_samples, rescale=False)当然也可以修改extract_feat()和predict(),避免修改通用的mmdeploy。2.用yolov8作为对比例子: yolo_world_head和yolov8_head都继承自yolov5_head,而yolov5_head的predict_by_feat()接口,为了部署,是有重写的,即yolov5_head__predict_by_feat()。 yolov8_head自身没有重写predict_by_feat()接口,因此会调用yolov5_head的predict_by_feat(),即在部署时也就调用了yolov5_head__predict_by_feat()。 而yolo_world_head不一样,是重写了predict_by_feat()的(虽然和yolov5_head的一字不差...),这就导致不会调用yolov5_head__predict_by_feat(),转换失败。 解决办法是删除predict_by_feat()即可。 这样我转换出来了一个onnx文件,但貌似其中包含了CLIP部分。你们的demo网站上,是可以一键deploy一个onnx文件出来的 而且融合了CLIP部分,不太清楚为什么相应功能在github仓里没有提供。
大佬,我的报错也是你说的这样,我按你说的方法转了,我直接转的trt。
主要是转的过程还应该融合CLIP
在处理了,这两天会随一个新feature一并更新,大家可以把遇到的问题或者潜在的solution共享一下,感谢支持!
- yolo_world的extract_feat()接口、yolo_world_head的predict()接口,形参和mmdet的通用接口是不一样的:extract_feat()多需要一个"batch_data_samples",predict()需要img_feat和txt_feature。这导致调用到这儿时就会报错。我把这儿按如下改了:
x = self.extract_feat(batch_inputs)output = self.bbox_head.predict(x, data_samples, rescale=False)改成img_feats, txt_feats = self.extract_feat(batch_inputs, data_samples)output = self.bbox_head.predict(img_feats, txt_feats, data_samples, rescale=False)当然也可以修改extract_feat()和predict(),避免修改通用的mmdeploy。2.用yolov8作为对比例子: yolo_world_head和yolov8_head都继承自yolov5_head,而yolov5_head的predict_by_feat()接口,为了部署,是有重写的,即yolov5_head__predict_by_feat()。 yolov8_head自身没有重写predict_by_feat()接口,因此会调用yolov5_head的predict_by_feat(),即在部署时也就调用了yolov5_head__predict_by_feat()。 而yolo_world_head不一样,是重写了predict_by_feat()的(虽然和yolov5_head的一字不差...),这就导致不会调用yolov5_head__predict_by_feat(),转换失败。 解决办法是删除predict_by_feat()即可。 这样我转换出来了一个onnx文件,但貌似其中包含了CLIP部分。你们的demo网站上,是可以一键deploy一个onnx文件出来的 而且融合了CLIP部分,不太清楚为什么相应功能在github仓里没有提供。
大佬,我的报错也是你说的这样,我按你说的方法转了,我直接转的trt。
主要是转的过程还应该融合CLIP
我转出来用netron看了下图结构,有文本的部分。但是转出来的过程中,trt推理出来没有结果。里面有个算子mmdeploybatchedNMS不支持。