You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch继承nn.Module的类实例化时出现意外关键字参数错误

解决PyTorch Module实例化时"unexpected keyword argument"报错问题

问题根源

你定义继承自torch.nn.Module的类时,错误地将构造函数写成了__int__(这是Python中用于对象转整数的特殊方法),而非正确的初始化方法__init__。

当你实例化类时,Python会调用父类torch.nn.Module的默认无参__init__方法,此时你传入的in_size参数会被判定为意外的关键字参数,从而触发__init__() got an unexpected keyword argument 'in_size'错误。

修正代码示例

错误写法:

import torch.nn as nn

class MyNN(nn.Module):
    def __int__(self, in_size):  # 错误:应为__init__
        super().__int__()
        self.fc = nn.Linear(in_size, 10)

正确写法:

import torch.nn as nn

class MyNN(nn.Module):
    def __init__(self, in_size):  # 正确的初始化方法
        super().__init__()  # 调用父类的初始化逻辑
        self.fc = nn.Linear(in_size, 10)

# 正常实例化
model = MyNN(in_size=20)

补充说明

__int__方法的作用是当调用int(obj)时返回对象对应的整数值,和类的初始化毫无关系。只有定义__init__方法,才能在实例化类时接收并处理自定义参数,同时必须通过super().__init__()调用父类nn.Module的初始化逻辑,保证模块正常工作。

内容的提问来源于stack exchange,提问作者rabgc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:36:06