if torch.cuda.is_available(): net = net.cuda() for name, param in net.named_parameters(): param.requires_grad = False if name[5] == str( hyper_params['stage']) and hyper_params['stage'] != 0: param.requires_grad = True elif (name[0] == 'b' or name[0] == 'c') and hyper_params['stage'] == 0: param.requires_grad = True # saving outputs of all Basic Blocks mdl = learn.model sf = [ SaveFeatures(m) for m in [mdl[0][2], mdl[0][4], mdl[0][5], mdl[0][6], mdl[0][7]] ] sf2 = [ SaveFeatures(m) for m in [net.relu2, net.layer1, net.layer2, net.layer3, net.layer4] ] project_name = 'tl-kd-' + hyper_params['model'] + '-' + hyper_params[ 'dataset'] experiment = Experiment(api_key="IOZ5docSriEdGRdQmdXQn9kpu", project_name=project_name, workspace="akshaykvnit") experiment.log_parameters(hyper_params) if hyper_params['stage'] == 0: filename = '../saved_models/' + str(
if torch.cuda.is_available(): net = net.cuda() # Freezing all parameters except of current stage for name, param in net.named_parameters(): param.requires_grad = False if name[5] == str( hyper_params['stage']) and hyper_params['stage'] != 0: param.requires_grad = True elif (name[0] == 'b' or name[0] == 'c') and hyper_params['stage'] == 0: param.requires_grad = True # saving outputs of all Basic Blocks sf = [ SaveFeatures(m) for m in [model.relu2, model.layer1, model.layer2, model.layer3] ] sf2 = [ SaveFeatures(m) for m in [net.relu2, net.layer1, net.layer2, net.layer3] ] experiment = Experiment(api_key="IOZ5docSriEdGRdQmdXQn9kpu", project_name="kd6", workspace="akshaykvnit") experiment.log_parameters(hyper_params) if hyper_params['stage'] == 0: filename = '../saved_models/' + str( hyper_params['dataset']) + '/' + str( hyper_params['student']) + '_stage' + str(
filename = '../saved_models/' + str(hyper_params['dataset']) + '/less_data' + str(hyper_params['perc']) + '/' + hyper_params['model'] + '_stage' + str(hyper_params['stage']) + '/model' + str(hyper_params['repeated']) + '.pt' net.load_state_dict(torch.load(filename, map_location = 'cpu')) if torch.cuda.is_available() : net = net.cuda() for name, param in net.named_parameters() : param.requires_grad = False if name[5] == str(hyper_params['stage']) and hyper_params['stage'] != 0 : param.requires_grad = True elif (name[0] == 'b' or name[0] == 'c') and hyper_params['stage'] == 0 : param.requires_grad = True # saving outputs of all Basic Blocks mdl = learn.model sf = [SaveFeatures(m) for m in [mdl[0][2], mdl[0][4], mdl[0][5], mdl[0][6], mdl[0][7]]] sf2 = [SaveFeatures(m) for m in [net.relu2, net.layer1, net.layer2, net.layer3, net.layer4]] project_name = 'kd-ld' + str(hyper_params['perc']) + '-' + hyper_params['dataset'] + '-' + hyper_params['model'] experiment = Experiment(api_key="1jNZ1sunRoAoI2TyremCNnYLO", project_name = project_name, workspace = "akshaykvnit") experiment.log_parameters(hyper_params) if hyper_params['stage'] == 0 : os.makedirs('../saved_models/' + str(hyper_params['dataset']) + '/less_data' + str(hyper_params['perc']) + '/' + hyper_params['model'] + '_stage' + str(hyper_params['stage']), exist_ok = True) filename = '../saved_models/' + str(hyper_params['dataset']) + '/less_data' + str(hyper_params['perc']) + '/' + hyper_params['model'] + '_stage' + str(hyper_params['stage']) + '/model' + str(hyper_params['repeated']) + '.pt' else : os.makedirs('../saved_models/' + str(hyper_params['dataset']) + '/less_data' + str(hyper_params['perc']) + '/' + hyper_params['model'] + '_stage' + str(hyper_params['stage'] + 1), exist_ok = True) filename = '../saved_models/' + str(hyper_params['dataset']) + '/less_data' + str(hyper_params['perc']) + '/' + hyper_params['model'] + '_stage' + str(hyper_params['stage'] + 1) + '/model' + str(hyper_params['repeated']) + '.pt' optimizer = torch.optim.Adam(net.parameters(), lr = hyper_params["learning_rate"]) total_step = len(data.train_ds) // hyper_params["batch_size"]
if torch.cuda.is_available(): net = net.cuda() for name, param in net.named_parameters(): param.requires_grad = False if name[0] == str(hyper_params['stage'] + 1) and hyper_params['stage'] != 0: param.requires_grad = True elif name[0] == str( hyper_params['stage']) and hyper_params['stage'] == 0: param.requires_grad = True # saving outputs of all Basic Blocks mdl = learn.model sf = [ SaveFeatures(m) for m in [mdl[0][2], mdl[0][4], mdl[0][5], mdl[0][6]] ] sf2 = [SaveFeatures(m) for m in [net[0], net[2], net[3], net[4]]] experiment = Experiment(api_key="IOZ5docSriEdGRdQmdXQn9kpu", project_name="kd5", workspace="akshaykvnit") experiment.log_parameters(hyper_params) if hyper_params['stage'] == 0: filename = '../saved_models/' + str( hyper_params['dataset']) + '/small_stage' + str( hyper_params['stage']) + '/model' + str( hyper_params['repeated']) + '.pt' else: filename = '../saved_models/' + str(
elif hyper_params['model'] == 'resnet14': net = resnet14(pretrained=False, progress=False) elif hyper_params['model'] == 'resnet18': net = resnet18(pretrained=False, progress=False) elif hyper_params['model'] == 'resnet20': net = resnet20(pretrained=False, progress=False) elif hyper_params['model'] == 'resnet26': net = resnet26(pretrained=False, progress=False) if torch.cuda.is_available(): net = net.cuda() # saving outputs of all Basic Blocks mdl = learn.model # for all 5 feature maps sf = [SaveFeatures(m) for m in [mdl[0][5]]] sf2 = [SaveFeatures(m) for m in [net.layer2]] num_fm = 1 project_name = 'trad-kd-ld-' + hyper_params['model'] + '-' + hyper_params[ 'dataset'] experiment = Experiment(api_key="1jNZ1sunRoAoI2TyremCNnYLO", project_name=project_name, workspace="akshaykvnit") experiment.log_parameters(hyper_params) optimizer = torch.optim.Adam(net.parameters(), lr=hyper_params["learning_rate"]) total_step = len(data.train_ds) // hyper_params["batch_size"] train_loss_list = list() val_loss_list = list() min_val = 0