当前位置:   article > 正文

PyTorch继承nn.Module时,类函数forward出现raise NotImplementedError_notimplementederror: module [modulelist] is missin

notimplementederror: module [modulelist] is missing the required "forward" f

问题

在这里插入图片描述

解决

1. NotImplementedError 错误:

子类没有完成父类的接口,在此就是父类(nn.Module)中的 forward 方法在子类中没有定义,则会自动调用 nn.Module 中的forward方法,而 nn.Module 中的 forward 是 raise 将错误抛出。所以出现 NotImplementedError 错误。

2. 问题锁定在forward方法上:

a). 没有对齐,forward 定义的代码段,可能多了个Tag;

b). 拼写错误,forward 拼写成 forword;

c). 根本没有写forward(逐渐离谱);

d). nn.Sequential 与 nn.ModuleList 用错:

__init__部分代码

__iniit__部分代码

forward部分代码

forward部分代码
由于当天用了很多此 nn.ModuleList,然后在这里我本意是用 nn.Sequential 但是我习惯性打了 nn.ModuleList,找了很久才发现,裂开。

问题原因(为什么报错是NotImplementedError)

在我们对 Module 子类,这样使用的时候,他会调用forward函数

spatical_feature = self.SpaticalConv(spatical_x)
spectral_feature = self.SpectralConv(spectral_x)
  • 1
  • 2

nn.Sequential

在 nn.Sequential 中有forward方法的定义,
在这里插入图片描述
表示依次执行多个 module

nn.ModuleList

在 nn.ModuleList 中有 insert, append, extend 方法,但是没有 forward 的定义,所以会出现 NotImplementedError

两者差别

在这里插入图片描述

参考

  1. ModuleList
  2. Sequential
  3. 常见pytorch中NotImplementedError原因
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/361186
推荐阅读
相关标签
  

闽ICP备14008679号