我对Pytorch非常陌生,如果问题很简单,请原谅。
我的问题是,我定义了一个名为net1
的类,并使用固定手动种子随机初始化其参数。
random.seed(opt.manualSeed)
torch.manual_seed(opt.manualSeed)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(opt.manualSeed)
class net1(nn.Module):
def __init__(self):
super(net1, self).__init__()
self.main_body = nn.Sequential(
# Define the layers...#
)
def forward(self, x):
return self.main_body(x)
# custom weights initialization called on net1
def weights_init(m):
classname = m.__class__.__name__
if classname.find('Conv') != -1:
m.weight.data.normal_(0.0, 0.02)
elif classname.find('BatchNorm') != -1:
m.weight.data.normal_(1.0, 0.02)
m.bias.data.fill_(0)
net1_ = net1()
net1_.apply(weights_init)
然而,当我将另一个类
net2
添加到代码中时:class net2(nn.Module):
def __init__(self):
super(net2, self).__init__()
self.main_body = nn.Sequential(
# Define the layers
)
def forward(self, x):
return self.main_body(x)
net2_ = net2()
即使我没有在其他任何地方使用它,而且它也没有连接到我的主图(建立在net1_
上),我仍然可以实例化它,但是我的图表输出结果不同。这是否是合理的结果?