elif args.net == "mobilenet":
    G = torchvision.models.mobilenet_v2(pretrained=True)
    inc = 1280
    G.classifier = torch.nn.Identity()
else:
    raise ValueError('Model cannot be recognized.')

if "resnet" in args.net or "densenet" in args.net or "mobilenet" 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)

device = torch.device("cuda:" + args.device)

G = G.to(device)
F1 = F1.to(device)

G.load_state_dict(
    torch.load(
        os.path.join(
            args.checkpath,
            "G_iter_model_{}_{}_{}_to_{}_num_{}.pth.tar".format(
                args.method, args.net, args.source, args.target, args.num))))
F1.load_state_dict(
    torch.load(
        os.path.join(
            args.checkpath,
            "F1_iter_model_{}_{}_{}_to_{}_num_{}.pth.tar".format(
                args.method, args.net, args.source, args.target, args.num))))

im_data_t = torch.FloatTensor(1)
            params += [{
                'params': [value],
                'lr': args.multi * 10,
                'weight_decay': 0.0005
            }]

if "resnet" in args.net or "densenet" in args.net or "mobilenet" in args.net or "inception" 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

device = torch.device("cuda:" + args.device)
G.to(device)
F1.to(device)

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.to(device)
im_data_t = im_data_t.to(device)
im_data_tu = im_data_tu.to(device)
gt_labels_s = gt_labels_s.to(device)
gt_labels_t = gt_labels_t.to(device)
sample_labels_t = sample_labels_t.to(device)