VDIGPKU / RPAttack

(ICME2021) RPATTACK: REFINED PATCH ATTACK ON GENERAL OBJECT DETECTORS
MIT License
44 stars 3 forks source link

AttributeError: 'bool' object has no attribute 'grad' 报错如何解决?谢谢!! #4

Open zhangmingjiang1114 opened 2 years ago

zhangmingjiang1114 commented 2 years ago

大佬!在执行yolov4/eval_code/attack_single_yolov4.py的时候,报错如下: Traceback (most recent call last): File "F:/x/RPAttack-main/yolov4/eval_code/attack_single_yolov4.py", line 140, in attack_single_yolov4(img_path) File "F:/x/RPAttack-main/yolov4/eval_code/attack_single_yolov4.py", line 77, in attack_single_yolov4 boxes, grad = do_attack(darknet_model, img_path, img, original_img, 0.5, 0.4, True) # File "F:\x\RPAttack-main\yolov4\eval_code\utils\utils.py", line 571, in do_attack return boxes, img_cv2.grad.data.cpu().detach().clone() AttributeError: 'bool' object has no attribute 'grad'

请问该如何解决?谢谢

Huaxingweichen commented 2 years ago

This means the img_cv2 is a bool type object. Please check whether the img_cv2 is a torch tensor.

I do not know whether you modify the original code. But anyway, you can trace the reason why img_cv2 is not a tensor.

这意味着 img_cv2 是一个 bool 类型的对象。 请检查 img_cv2 是否为torch张量。

因为我不知道你是否修改了原代码,你可以通过查看 img_cv2 不是张量的原因来解决这个问题。

zhangmingjiang1114 commented 2 years ago

This means the img_cv2 is a bool type object. Please check whether the img_cv2 is a torch tensor.

I do not know whether you modify the original code. But anyway, you can trace the reason why img_cv2 is not a tensor.

这意味着 img_cv2 是一个 bool 类型的对象。 请检查 img_cv2 是否为torch张量。

因为我不知道你是否修改了原代码,你可以通过查看 img_cv2 不是张量的原因来解决这个问题。

我将img_cv2改为了img后,就跑通了,谢谢!

zhongyubunenghunl commented 1 year ago

您好,我也遇到了同样的问题,boxes, grad = do_attack(darknet_model, img_path, img, original_img, 0.5, 0.4, True),作者的代码中最后给img_cv2传入的值是true

This means the img_cv2 is a bool type object. Please check whether the img_cv2 is a torch tensor.

I do not know whether you modify the original code. But anyway, you can trace the reason why img_cv2 is not a tensor.

这意味着 img_cv2 是一个 bool 类型的对象。 请检查 img_cv2 是否为torch张量。

因为我不知道你是否修改了原代码,你可以通过查看 img_cv2 不是张量的原因来解决这个问题。

AttributeError: 'bool' object has no attribute 'requires_grad'

This means the img_cv2 is a bool type object. Please check whether the img_cv2 is a torch tensor.

I do not know whether you modify the original code. But anyway, you can trace the reason why img_cv2 is not a tensor.

这意味着 img_cv2 是一个 bool 类型的对象。 请检查 img_cv2 是否为torch张量。

因为我不知道你是否修改了原代码,你可以通过查看 img_cv2 不是张量的原因来解决这个问题。

您好,非常感谢您的分享,想请教您个问题,在复现attack_yolov4.py和attack_single_yolov4.py中都遇到了同一个问题,boxes, grad = do_attack(darknet_model, img_path, img, original_img, 0.5, 0.4, True)中在调用do_attack函数时候,会报错误AttributeError: 'bool' object has no attribute 'requires_grad',可是img_cv2您代码中传入的变量就是True bool型,该怎么处理呢?