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()