Example #1
0
print('apply training algorithm...')

# Model initialization
feature_net = utils_resnet.Resnet(pretrained=True)
icarl = utils_icarl.iCaRL(param, feature_net, label_dict)

# Training tools
loss_fn = torch.nn.BCELoss(size_average=False)
optimizer = torch.optim.Adam(icarl.parameters(),
                             lr=lr,
                             weight_decay=wght_decay)
scheduler = MultiStepLR(optimizer, milestones=lr_milestones, gamma=0.1)
if (gpu):
    icarl = icalr.cuda()
    loss_fn = loss_fn.cuda()
    scheduler = scheduler.cuda()

# Recording traing process
log = open(work_path + '/log.txt', 'ab', 0)
log.write('epoch time training_loss validation_loss \n'.encode())

for iter_group in range(2):  #nb_group
    # Loading protoset
    if (iter_group == 0):
        protoset = dict()
    else:
        protoset_name = work_path + '/protoset{}'.format(iter_group - 1)
        with open(protoset_name, 'rb') as f:
            protoset = pickle.load(f)
            f.close()