RuntimeError: Legacy autograd function with non-static forward method is deprecated. Please ......

最近跑一个faster-rcnn实验,测试时候出现错误:

RuntimeError: Legacy autograd function with non-static forward method is deprecated. Please ......_第1张图片

网上搜罗一圈,都说是原代码太老,调用forward的方法是非静态的,而在pytorch1.3及以后的版本需要规定forward方法为静态方法,所以在pytorch1.3以上的版本执行出错。(此时我的pytorch是1.8版本)

根据博客:【调试】错误 RuntimeError: Legacy autograd function with non-static forward method is deprecated._不断进步的咸鱼的博客-CSDN博客

的启发,比葫芦画瓢, 我的错误原因是在roi_module.py里面的一个类RoIPooling2D里,如下图

RuntimeError: Legacy autograd function with non-static forward method is deprecated. Please ......_第2张图片

 而这句错误是返回RoI类,返回的时候非静态调用RoI类的forward函数,导致错误。

改正:如下图,静态调用RoI类的forward函数即可,即RoI.forwardRuntimeError: Legacy autograd function with non-static forward method is deprecated. Please ......_第3张图片

 最后fasterrcnn可以成功测试!

 

你可能感兴趣的:(python基础,深度学习,python,cnn)