AttributeError: cannot assign module before Module.__init__() call

博客介绍了在Linux环境下,使用Python3.8和PyTorch1.11进行深度学习时遇到的问题。作者在自定义PyTorch模型子类的__init__()方法中,由于漏写了super().__init__()导致无法正确初始化模型。错误表现为尝试在未调用Module.__init__()之前定义子模型。解决方案是确保在定义子模型前调用父类的构造函数,即添加super(类名, self).__init__()。遵循这一修正后,程序得以正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

诸神缄默不语-个人优快云博文目录

运行环境,报错信息和查找到的错误内容:
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()命令而造成的。加上之后就可以正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值