运行环境,报错信息和查找到的错误内容:
Linux系统
Python 3.8(使用anaconda管理的虚拟环境)
PyTorch 1.11+cudatoolkit 10.2(通过anaconda下载)
这个问题是出现在自定义PyTorch模型(torch.nn.Module)子类的运行过程中,在__init__()函数中报错。
我的错误原因是super(类名,self).__init__()忘写最后一个括号了。将括号加上后,就能正常运行了。
这个错误的原因就在于还没有调用Module.__init__()就开始定义子模型了,如self.classifier=nn.Linear(input_dim,output_dim)等。参考异常解决(二)-- AttributeError: cannot assign module before Module.__init__() call_奋斗の博客的博客-优快云博客,也可能是因为直接没写super()命令而造成的。加上之后就可以正常运行。
博客介绍了在Linux环境下,使用Python3.8和PyTorch1.11进行深度学习时遇到的问题。作者在自定义PyTorch模型子类的__init__()方法中,由于漏写了super().__init__()导致无法正确初始化模型。错误表现为尝试在未调用Module.__init__()之前定义子模型。解决方案是确保在定义子模型前调用父类的构造函数,即添加super(类名, self).__init__()。遵循这一修正后,程序得以正常运行。
4582

被折叠的 条评论
为什么被折叠?



