Legacy autograd function with non-static forward method is deprecated

Legacy autograd function with non-static forward method is deprecated

在网络s3fd_atss_sapd 测试时发现这个问题,

detect 是个Function,

class Detect(Function):
    xxx

self.detect = Detect(cfg)

改之前代码:

        if self.phase == 'test':
            output = self.detect(
                loc.view(loc.size(0), -1, 4),                   # loc preds
                self.softmax.forward(conf.view(conf.size(0), -1,
                                       self.num_classes)),                # conf preds
                # self.priors.type(type(x.data))                  # default boxes
                self.priors.type_as(x)                  # default boxes
            )

改之后代码:

        if self.phase == 'test':
            output = self.detect.forward(
                loc.view(loc.size(0), -1, 4),                   # loc preds
                self.softmax.forward(conf.view(conf.size(0), -1,
                                       self.num_classes)),                # conf preds
                # self.priors.type(type(x.data))                  # default boxes
                self.priors.type_as(x)                  # default boxes
            )

基本上与网上方法一致,

网上的方法:

Legacy autograd function with non-static forward method is deprecated. - 知乎

解决方案是将ssd.py中的以下代码进行修改:

Legacy autograd function with non-static forward method is deprecated_第1张图片

修改为

Legacy autograd function with non-static forward method is deprecated_第2张图片

发布于 2021-03-09 22:

你可能感兴趣的:(python基础,pytorch,深度学习,人工智能)