关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案相关的知识,希望对你有一定的参考价值。

问题

方法

  1. NotImplementedError 错误:

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

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

(1)没有对齐,forward对应的代码段,可能是多了一个Tag,

(2)拼写错误,forward拼写成了forword

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

果然forward拼写成了forword

总结

在网上查询资料后,还有一些会导致报错NotImplementedError

比如在 nn.Sequential 中有forward方法的定义:

表示执行多个module。

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

而我的错误则是最基本的拼写错误,大家报错后首先需要检查自己的代码有没有语法错误,拼写错误,这样会节省很多时间。

以上是关于关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

每天讲解一点PyTorch 14模型定义,继承nn.Module

每天讲解一点PyTorch 14模型定义,继承nn.Module

PyTorch中nn.Module类简介

『PyTorch』第七弹_nn.Module扩展层

小白学习PyTorch教程四基于nn.Module类实现线性回归模型

PyTorch 模型构造