def semantics(ss_path, cluster_type, cluster_path, **kwargs): if ss_path: ss = ss_model(ss_path) cluster = define_last_model(cluster_type, cluster_path, 'classifier', **kwargs) return Semantics(ss, cluster) else: return define_last_model(cluster_type, cluster_path, 'classifier', **kwargs)
def execute(args): data_root_src = args.data_root_src domain = args.domain nz = 16 save_path = args.save_path state_dict_path = get_last_model('nets_ema', save_path) device = 'cuda' domain = int(domain) # Load model state_dict = torch.load(state_dict_path, map_location='cpu') generator = Generator(bottleneck_size=64, bottleneck_blocks=4, img_size=args.img_size, max_conv_dim=args.max_conv_dim).to(device) generator.load_state_dict(state_dict['generator']) mapping = MappingNetwork(nc=10) mapping.load_state_dict(state_dict['mapping_network']) mapping.to(device) sem = semantics(None, 'vmt_cluster', args.da_path, shape=[3, 32], nc=10).cuda() sem.eval() classifier = define_last_model('classifier', args.classifier_path, 'classifier', shape=3, nc=10).to(device) classifier.eval() dataset = getattr(images, args.dataset_src) src_dataset = dataset(data_root_src, 1, 32)[2] accuracy = evaluate(src_dataset, nz, domain, sem, mapping, generator, classifier, device) print(accuracy) save_result(save_path, args.identifier, state_dict_path, accuracy)
def execute(args): state_dict_path = args.state_dict_path data_root_src = args.data_root_src domain = args.domain nz = 16 device = 'cuda' domain = int(domain) # Load model state_dict = torch.load(state_dict_path, map_location='cpu') generator = Generator(bottleneck_size=args.bottleneck_size, bottleneck_blocks=4, img_size=args.img_size, max_conv_dim=args.max_conv_dim).to(device) generator.load_state_dict(state_dict['generator']) mapping = MappingNetwork() mapping.load_state_dict(state_dict['mapping_network']) mapping.to(device) classifier = define_last_model('classifier', args.classifier_path, 'classifier', shape=3, nc=10).to(device) classifier.eval() dataset = getattr(images, args.dataset_src) src_dataset = dataset(data_root_src, 1, 64)[2] accuracy = evaluate(src_dataset, nz, domain, mapping, generator, classifier, device) print(accuracy)