关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案相关的知识,希望对你有一定的参考价值。
问题
方法
- 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