【发布时间】:2019-07-15 10:16:45
【问题描述】:
我有一个数据集,它被分割成更小的数据集。
我想为数据集的每个分区训练 3 个模型,但我需要所有训练会话都从相同的初始化网络参数开始。
所以它看起来像这样:
modelList = []
thisCNN = NNet()
for x in range(3):
train = torch.utils.data.DataLoader(Subset(train_set, indexes[x]), batch_size=32)
bb = trainMyNet(thisCNN, train, test)
modelList.append(list(bb.parameters()))
print modelList[0][1]
print modelList[1][1]
print modelList[2][1]
在打印过程中,我为每个保存的模型获得了相同的精确参数,这很奇怪,而且我还注意到,在每次迭代之后,模型实际上会从上一次迭代中恢复训练,因为它会降低每次迭代的损失。
我想要实现的是,每次迭代都在当前子集x 上获得一个新模型,但训练应该以相同的初始thisCNN = NNet() 权重开始。
【问题讨论】:
标签: python machine-learning deep-learning computer-vision pytorch