Quin3333 2023-02-17 04:01 采纳率: 62.5%
浏览 27
已结题

python中关于类中函数问题

代码如下:

class Residual(nn.Module):
    def __init__(self,in_channels,out_channels,stride=1,**kwargs):
        super(Residual, self).__init__()
        self.conv1=nn.Conv2d(in_channels=in_channels,out_channels=out_channels,kernel_size=1,stride=stride,padding=1)

    def forward(self, X):
        Y = self.conv1(X)
        return nn.ReLU(Y+X)

class MyNet(nn.Module):
    def __init__(self):
        super(MyNet, self).__init__()
        self.res=Residual(in_channels=#???,out_channels=#???,stride=1)
        
    def forward(self,x):
        x1=self.conv1(x)
        x2=self.conv2(x1)
        x2_new=self.res(x2,in_channels=64,out_channels=128,stride=2)

在这个代码中,问号处括号中应写什么,才能使我实例化时能够输入相应参数?

  • 写回答

2条回答 默认 最新

  • GISer Liu 2023-02-17 05:01
    关注

    以下答案引用自GPT-3大模型,请合理使用:

    实例化时,可以如下输入相应参数:
    
    net = MyNet()
    res = Residual(in_channels=64,out_channels=128,stride=1)  # 这里填写64128
    
    在类MyNet中,#??处应该写入参数in_channels和out_channels,让调用者能够使用对应参数来实例化这个类
    比如代码应该改写为如下形式:
    class MyNet(nn.Module):
        def __init__(self):
            super(MyNet, self).__init__()
            self.res=Residual(in_channels=in_channels,out_channels=out_channels,stride=1)
            
        def forward(self,x):
            x1=self.conv1(x)
            x2=self.conv2(x1)
            x2_new=self.res(x2,in_channels=in_channels,out_channels=out_channels,stride=2)
    

    如果我的回答解决了您的问题,请采纳我的回答

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 2月17日