报错如下:
UserWarning: Legacy autograd function with non-static forward method is deprecated and will be removed in 1.3. Please use new-style autograd function with static forward method. (Example: https://pytorch.org/docs/stable/autograd.html#torch.autograd.Function)
报错原因: pytorch版本问题
使用PyTorch编写代码的时候,我们通常将模型整合进一个类,在init方法里声明模型结构,在forward方法里约定模型里数据的正向流动,然后PyTorch自动生成数据的方向传播backward方法。
PyTorch在1.3版本及之后,规定forward方法必须是静态方法。
违反了该原则的代码将会在运行时报上述错误。
解决方法:
一般的解决办法是,在forward方法声明上一行加入@staticmethod
装饰器,即可完成修改。
参考官方给的Example:
但是在一些没那么规范的代码下,这个改进可能会成为我们的绊