params += [{'params': [value], 'lr': args.multi, 'weight_decay': 0.0005}] else: params += [{'params': [value], 'lr': args.multi * 10, 'weight_decay': 0.0005}] if "resnet" in args.net: F1 = Predictor_deep(num_class=len(class_list), inc=inc) else: F1 = Predictor(num_class=len(class_list), inc=inc, temp=args.T) weights_init(F1) lr = args.lr G.cuda() F1.cuda() im_data_s = torch.FloatTensor(1) im_data_t = torch.FloatTensor(1) im_data_tu = torch.FloatTensor(1) gt_labels_s = torch.LongTensor(1) gt_labels_t = torch.LongTensor(1) sample_labels_t = torch.LongTensor(1) sample_labels_s = torch.LongTensor(1) im_data_s = im_data_s.cuda() im_data_t = im_data_t.cuda() im_data_tu = im_data_tu.cuda() gt_labels_s = gt_labels_s.cuda() gt_labels_t = gt_labels_t.cuda() sample_labels_t = sample_labels_t.cuda()
'weight_decay': 0.0005 }] ## F1: Source-based Classifier ## F1: Target-based Classifier if "resnet" in args.net: F1 = Predictor_deep(num_class=len(class_list), inc=inc) F2 = Predictor_deep(num_class=4, inc=inc) else: #### F1: Semantic Classifier; F2: Rotation Classifier F1 = Predictor(num_class=len(class_list), inc=inc, temp=args.T) F2 = Predictor(num_class=4, inc=inc, temp=args.T) weights_init(F1) lr = args.lr G.cuda() F1.cuda() F2.cuda() if os.path.exists(args.checkpath) == False: os.mkdir(args.checkpath) def train(): G.train() F1.train() F2.train() optimizer_g = optim.SGD(params, momentum=0.9, weight_decay=0.0005, nesterov=True) optimizer_f1 = optim.SGD(list(F1.parameters()),