马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在pytorch中定义一个神经网络模型:import torch
class MyNet(torch.nn.Module):
def __init__(self):
super(MyNet, self).__init__() # 第一句话,调用父类的构造函数
self.conv1 = torch.nn.Conv2d(3, 32, 3, 1, 1)
self.relu1=torch.nn.ReLU()
self.max_pooling1=torch.nn.MaxPool2d(2,1)
self.conv2 = torch.nn.Conv2d(3, 32, 3, 1, 1)
self.relu2=torch.nn.ReLU()
self.max_pooling2=torch.nn.MaxPool2d(2,1)
self.dense1 = torch.nn.Linear(32 * 3 * 3, 128)
self.dense2 = torch.nn.Linear(128, 10)
为什么要用这一句呢: super(MyNet, self).__init__() ,我输出的继承层级关系只有一层: [__main__.MyNet, torch.nn.modules.module.Module, object]
,super不是多继承的时候用的吗?求dalao指点一下
本帖最后由 sunrise085 于 2020-3-18 09:03 编辑
在初始化类对象的时候若需要调用父类的初始化函数,则需要使用super函数,这与几层继承没有关系,只有一层继承关系,需要调用父类初始化函数时也需要调用super
你所谓的多继承时调用super,可能有误解, 看看这个帖子的多继承初始化。
|