├── README.md ├── config.py ├── data.py ├── data └── office │ ├── amazon_reorgnized.txt │ ├── dslr_reorgnized.txt │ └── webcam_reorgnized.txt ├── lib.py ├── main.py ├── net.py ├── office-train-config.yaml ├── officehome-test-config.yaml ├── officehome-train-config.yaml ├── requirements.txt └── visda-train-config.yaml /README.md: -------------------------------------------------------------------------------- 1 | # Universal Domain Adaptation 2 | 3 | Code release for **[Universal Domain Adaptation(CVPR 2019)](https://youkaichao.github.io/files/cvpr2019/1628.pdf)** 4 | 5 | ## Note 6 | As the focus of my research has moved away from domain adaptation, this code repository may be obsolete someday. We are delighted to see that universal domain adaptation has received tremendous attention in the academic community, and readers are encouraged to discuss related questions with the authors of follow-up papers. 7 | 8 | ## Requirements 9 | - python 3.6+ 10 | - PyTorch 1.0 11 | 12 | `pip install -r requirements.txt` 13 | 14 | ## Usage 15 | 16 | - download datasets 17 | 18 | - write your config file 19 | 20 | - `python main.py --config /path/to/your/config/yaml/file` 21 | 22 | - train (configurations in `officehome-train-config.yaml` are only for officehome dataset): 23 | 24 | `python main.py --config officehome-train-config.yaml` 25 | 26 | - test 27 | 28 | `python main.py --config officehome-test-config.yaml` 29 | 30 | - monitor (tensorboard required) 31 | 32 | `tensorboard --logdir .` 33 | 34 | ## Checkpoints 35 | 36 | We provide the checkpoints for officehome datasets at [Google Drive](https://drive.google.com/drive/folders/1Kw3Lfw4dPdTZ8RQ1cUQVDpE5odp8th7J?usp=sharing). 37 | 38 | ## Citation 39 | please cite: 40 | ``` 41 | @InProceedings{UDA_2019_CVPR, 42 | author = {You, Kaichao and Long, Mingsheng and Cao, Zhangjie and Wang, Jianmin and Jordan, Michael I.}, 43 | title = {Universal Domain Adaptation}, 44 | booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, 45 | month = {June}, 46 | year = {2019} 47 | } 48 | ``` 49 | 50 | ## Contact 51 | - youkaichao@gmail.com 52 | - longmingsheng@gmail.com 53 | -------------------------------------------------------------------------------- /config.py: -------------------------------------------------------------------------------- 1 | import yaml 2 | import easydict 3 | from os.path import join 4 | 5 | 6 | class Dataset: 7 | def __init__(self, path, domains, files, prefix): 8 | self.path = path 9 | self.prefix = prefix 10 | self.domains = domains 11 | self.files = [(join(path, file)) for file in files] 12 | self.prefixes = [self.prefix] * len(self.domains) 13 | 14 | 15 | import argparse 16 | parser = argparse.ArgumentParser(description='Code for *Universal Domain Adaptation*', 17 | formatter_class=argparse.ArgumentDefaultsHelpFormatter) 18 | parser.add_argument('--config', type=str, default='config.yaml', help='/path/to/config/file') 19 | 20 | args = parser.parse_args() 21 | 22 | config_file = args.config 23 | 24 | args = yaml.load(open(config_file)) 25 | 26 | save_config = yaml.load(open(config_file)) 27 | 28 | args = easydict.EasyDict(args) 29 | 30 | dataset = None 31 | if args.data.dataset.name == 'office': 32 | dataset = Dataset( 33 | path=args.data.dataset.root_path, 34 | domains=['amazon', 'dslr', 'webcam'], 35 | files=[ 36 | 'amazon_reorgnized.txt', 37 | 'dslr_reorgnized.txt', 38 | 'webcam_reorgnized.txt' 39 | ], 40 | prefix=args.data.dataset.root_path) 41 | elif args.data.dataset.name == 'officehome': 42 | dataset = Dataset( 43 | path=args.data.dataset.root_path, 44 | domains=['Art', 'Clipart', 'Product', 'Real_World'], 45 | files=[ 46 | 'Art.txt', 47 | 'Clipart.txt', 48 | 'Product.txt', 49 | 'Real_World.txt' 50 | ], 51 | prefix=args.data.dataset.root_path) 52 | elif args.data.dataset.name == 'visda2017': 53 | dataset = Dataset( 54 | path=args.data.dataset.root_path, 55 | domains=['train', 'validation'], 56 | files=[ 57 | 'train/image_list.txt', 58 | 'validation/image_list.txt', 59 | ], 60 | prefix=args.data.dataset.root_path) 61 | dataset.prefixes = [join(dataset.path, 'train'), join(dataset.path, 'validation')] 62 | else: 63 | raise Exception(f'dataset {args.data.dataset.name} not supported!') 64 | 65 | source_domain_name = dataset.domains[args.data.dataset.source] 66 | target_domain_name = dataset.domains[args.data.dataset.target] 67 | source_file = dataset.files[args.data.dataset.source] 68 | target_file = dataset.files[args.data.dataset.target] 69 | -------------------------------------------------------------------------------- /data.py: -------------------------------------------------------------------------------- 1 | from config import * 2 | from easydl import * 3 | from collections import Counter 4 | from torchvision.transforms.transforms import * 5 | from torch.utils.data import DataLoader, WeightedRandomSampler 6 | 7 | ''' 8 | assume classes across domains are the same. 9 | [0 1 ..................................................................... N - 1] 10 | |----common classes --||----source private classes --||----target private classes --| 11 | ''' 12 | a, b, c = args.data.dataset.n_share, args.data.dataset.n_source_private, args.data.dataset.n_total 13 | c = c - a - b 14 | common_classes = [i for i in range(a)] 15 | source_private_classes = [i + a for i in range(b)] 16 | target_private_classes = [i + a + b for i in range(c)] 17 | 18 | source_classes = common_classes + source_private_classes 19 | target_classes = common_classes + target_private_classes 20 | 21 | train_transform = Compose([ 22 | Resize(256), 23 | RandomCrop(224), 24 | RandomHorizontalFlip(), 25 | ToTensor() 26 | ]) 27 | 28 | test_transform = Compose([ 29 | Resize(256), 30 | CenterCrop(224), 31 | ToTensor() 32 | ]) 33 | 34 | source_train_ds = FileListDataset(list_path=source_file, path_prefix=dataset.prefixes[args.data.dataset.source], 35 | transform=train_transform, filter=(lambda x: x in source_classes)) 36 | source_test_ds = FileListDataset(list_path=source_file,path_prefix=dataset.prefixes[args.data.dataset.source], 37 | transform=test_transform, filter=(lambda x: x in source_classes)) 38 | target_train_ds = FileListDataset(list_path=target_file, path_prefix=dataset.prefixes[args.data.dataset.target], 39 | transform=train_transform, filter=(lambda x: x in target_classes)) 40 | target_test_ds = FileListDataset(list_path=target_file, path_prefix=dataset.prefixes[args.data.dataset.target], 41 | transform=test_transform, filter=(lambda x: x in target_classes)) 42 | 43 | classes = source_train_ds.labels 44 | freq = Counter(classes) 45 | class_weight = {x : 1.0 / freq[x] if args.data.dataloader.class_balance else 1.0 for x in freq} 46 | 47 | source_weights = [class_weight[x] for x in source_train_ds.labels] 48 | sampler = WeightedRandomSampler(source_weights, len(source_train_ds.labels)) 49 | 50 | source_train_dl = DataLoader(dataset=source_train_ds, batch_size=args.data.dataloader.batch_size, 51 | sampler=sampler, num_workers=args.data.dataloader.data_workers, drop_last=True) 52 | source_test_dl = DataLoader(dataset=source_test_ds, batch_size=args.data.dataloader.batch_size, shuffle=False, 53 | num_workers=1, drop_last=False) 54 | target_train_dl = DataLoader(dataset=target_train_ds, batch_size=args.data.dataloader.batch_size,shuffle=True, 55 | num_workers=args.data.dataloader.data_workers, drop_last=True) 56 | target_test_dl = DataLoader(dataset=target_test_ds, batch_size=args.data.dataloader.batch_size, shuffle=False, 57 | num_workers=1, drop_last=False) 58 | -------------------------------------------------------------------------------- /data/office/dslr_reorgnized.txt: -------------------------------------------------------------------------------- 1 | domain_adaptation_images/dslr/images/calculator/frame_0001.jpg 2 2 | domain_adaptation_images/dslr/images/calculator/frame_0002.jpg 2 3 | domain_adaptation_images/dslr/images/calculator/frame_0003.jpg 2 4 | domain_adaptation_images/dslr/images/calculator/frame_0004.jpg 2 5 | domain_adaptation_images/dslr/images/calculator/frame_0005.jpg 2 6 | domain_adaptation_images/dslr/images/calculator/frame_0006.jpg 2 7 | domain_adaptation_images/dslr/images/calculator/frame_0007.jpg 2 8 | domain_adaptation_images/dslr/images/calculator/frame_0008.jpg 2 9 | domain_adaptation_images/dslr/images/calculator/frame_0009.jpg 2 10 | domain_adaptation_images/dslr/images/calculator/frame_0010.jpg 2 11 | domain_adaptation_images/dslr/images/calculator/frame_0011.jpg 2 12 | domain_adaptation_images/dslr/images/calculator/frame_0012.jpg 2 13 | domain_adaptation_images/dslr/images/ring_binder/frame_0001.jpg 24 14 | domain_adaptation_images/dslr/images/ring_binder/frame_0002.jpg 24 15 | domain_adaptation_images/dslr/images/ring_binder/frame_0003.jpg 24 16 | domain_adaptation_images/dslr/images/ring_binder/frame_0004.jpg 24 17 | domain_adaptation_images/dslr/images/ring_binder/frame_0005.jpg 24 18 | domain_adaptation_images/dslr/images/ring_binder/frame_0006.jpg 24 19 | domain_adaptation_images/dslr/images/ring_binder/frame_0007.jpg 24 20 | domain_adaptation_images/dslr/images/ring_binder/frame_0008.jpg 24 21 | domain_adaptation_images/dslr/images/ring_binder/frame_0009.jpg 24 22 | domain_adaptation_images/dslr/images/ring_binder/frame_0010.jpg 24 23 | domain_adaptation_images/dslr/images/printer/frame_0001.jpg 22 24 | domain_adaptation_images/dslr/images/printer/frame_0002.jpg 22 25 | domain_adaptation_images/dslr/images/printer/frame_0003.jpg 22 26 | domain_adaptation_images/dslr/images/printer/frame_0004.jpg 22 27 | domain_adaptation_images/dslr/images/printer/frame_0005.jpg 22 28 | domain_adaptation_images/dslr/images/printer/frame_0006.jpg 22 29 | domain_adaptation_images/dslr/images/printer/frame_0007.jpg 22 30 | domain_adaptation_images/dslr/images/printer/frame_0008.jpg 22 31 | domain_adaptation_images/dslr/images/printer/frame_0009.jpg 22 32 | domain_adaptation_images/dslr/images/printer/frame_0010.jpg 22 33 | domain_adaptation_images/dslr/images/printer/frame_0011.jpg 22 34 | domain_adaptation_images/dslr/images/printer/frame_0012.jpg 22 35 | domain_adaptation_images/dslr/images/printer/frame_0013.jpg 22 36 | domain_adaptation_images/dslr/images/printer/frame_0014.jpg 22 37 | domain_adaptation_images/dslr/images/printer/frame_0015.jpg 22 38 | domain_adaptation_images/dslr/images/keyboard/frame_0001.jpg 4 39 | domain_adaptation_images/dslr/images/keyboard/frame_0002.jpg 4 40 | domain_adaptation_images/dslr/images/keyboard/frame_0003.jpg 4 41 | domain_adaptation_images/dslr/images/keyboard/frame_0004.jpg 4 42 | domain_adaptation_images/dslr/images/keyboard/frame_0005.jpg 4 43 | domain_adaptation_images/dslr/images/keyboard/frame_0006.jpg 4 44 | domain_adaptation_images/dslr/images/keyboard/frame_0007.jpg 4 45 | domain_adaptation_images/dslr/images/keyboard/frame_0008.jpg 4 46 | domain_adaptation_images/dslr/images/keyboard/frame_0009.jpg 4 47 | domain_adaptation_images/dslr/images/keyboard/frame_0010.jpg 4 48 | domain_adaptation_images/dslr/images/scissors/frame_0001.jpg 26 49 | domain_adaptation_images/dslr/images/scissors/frame_0002.jpg 26 50 | domain_adaptation_images/dslr/images/scissors/frame_0003.jpg 26 51 | domain_adaptation_images/dslr/images/scissors/frame_0004.jpg 26 52 | domain_adaptation_images/dslr/images/scissors/frame_0005.jpg 26 53 | domain_adaptation_images/dslr/images/scissors/frame_0006.jpg 26 54 | domain_adaptation_images/dslr/images/scissors/frame_0007.jpg 26 55 | domain_adaptation_images/dslr/images/scissors/frame_0008.jpg 26 56 | domain_adaptation_images/dslr/images/scissors/frame_0009.jpg 26 57 | domain_adaptation_images/dslr/images/scissors/frame_0010.jpg 26 58 | domain_adaptation_images/dslr/images/scissors/frame_0011.jpg 26 59 | domain_adaptation_images/dslr/images/scissors/frame_0012.jpg 26 60 | domain_adaptation_images/dslr/images/scissors/frame_0013.jpg 26 61 | domain_adaptation_images/dslr/images/scissors/frame_0014.jpg 26 62 | domain_adaptation_images/dslr/images/scissors/frame_0015.jpg 26 63 | domain_adaptation_images/dslr/images/scissors/frame_0016.jpg 26 64 | domain_adaptation_images/dslr/images/scissors/frame_0017.jpg 26 65 | domain_adaptation_images/dslr/images/scissors/frame_0018.jpg 26 66 | domain_adaptation_images/dslr/images/laptop_computer/frame_0001.jpg 5 67 | domain_adaptation_images/dslr/images/laptop_computer/frame_0002.jpg 5 68 | domain_adaptation_images/dslr/images/laptop_computer/frame_0003.jpg 5 69 | domain_adaptation_images/dslr/images/laptop_computer/frame_0004.jpg 5 70 | domain_adaptation_images/dslr/images/laptop_computer/frame_0005.jpg 5 71 | domain_adaptation_images/dslr/images/laptop_computer/frame_0006.jpg 5 72 | domain_adaptation_images/dslr/images/laptop_computer/frame_0007.jpg 5 73 | domain_adaptation_images/dslr/images/laptop_computer/frame_0008.jpg 5 74 | domain_adaptation_images/dslr/images/laptop_computer/frame_0009.jpg 5 75 | domain_adaptation_images/dslr/images/laptop_computer/frame_0010.jpg 5 76 | domain_adaptation_images/dslr/images/laptop_computer/frame_0011.jpg 5 77 | domain_adaptation_images/dslr/images/laptop_computer/frame_0012.jpg 5 78 | domain_adaptation_images/dslr/images/laptop_computer/frame_0013.jpg 5 79 | domain_adaptation_images/dslr/images/laptop_computer/frame_0014.jpg 5 80 | domain_adaptation_images/dslr/images/laptop_computer/frame_0015.jpg 5 81 | domain_adaptation_images/dslr/images/laptop_computer/frame_0016.jpg 5 82 | domain_adaptation_images/dslr/images/laptop_computer/frame_0017.jpg 5 83 | domain_adaptation_images/dslr/images/laptop_computer/frame_0018.jpg 5 84 | domain_adaptation_images/dslr/images/laptop_computer/frame_0019.jpg 5 85 | domain_adaptation_images/dslr/images/laptop_computer/frame_0020.jpg 5 86 | domain_adaptation_images/dslr/images/laptop_computer/frame_0021.jpg 5 87 | domain_adaptation_images/dslr/images/laptop_computer/frame_0022.jpg 5 88 | domain_adaptation_images/dslr/images/laptop_computer/frame_0023.jpg 5 89 | domain_adaptation_images/dslr/images/laptop_computer/frame_0024.jpg 5 90 | domain_adaptation_images/dslr/images/mouse/frame_0001.jpg 7 91 | domain_adaptation_images/dslr/images/mouse/frame_0002.jpg 7 92 | domain_adaptation_images/dslr/images/mouse/frame_0003.jpg 7 93 | domain_adaptation_images/dslr/images/mouse/frame_0004.jpg 7 94 | domain_adaptation_images/dslr/images/mouse/frame_0005.jpg 7 95 | domain_adaptation_images/dslr/images/mouse/frame_0006.jpg 7 96 | domain_adaptation_images/dslr/images/mouse/frame_0007.jpg 7 97 | domain_adaptation_images/dslr/images/mouse/frame_0008.jpg 7 98 | domain_adaptation_images/dslr/images/mouse/frame_0009.jpg 7 99 | domain_adaptation_images/dslr/images/mouse/frame_0010.jpg 7 100 | domain_adaptation_images/dslr/images/mouse/frame_0011.jpg 7 101 | domain_adaptation_images/dslr/images/mouse/frame_0012.jpg 7 102 | domain_adaptation_images/dslr/images/monitor/frame_0001.jpg 6 103 | domain_adaptation_images/dslr/images/monitor/frame_0002.jpg 6 104 | domain_adaptation_images/dslr/images/monitor/frame_0003.jpg 6 105 | domain_adaptation_images/dslr/images/monitor/frame_0004.jpg 6 106 | domain_adaptation_images/dslr/images/monitor/frame_0005.jpg 6 107 | domain_adaptation_images/dslr/images/monitor/frame_0006.jpg 6 108 | domain_adaptation_images/dslr/images/monitor/frame_0007.jpg 6 109 | domain_adaptation_images/dslr/images/monitor/frame_0008.jpg 6 110 | domain_adaptation_images/dslr/images/monitor/frame_0009.jpg 6 111 | domain_adaptation_images/dslr/images/monitor/frame_0010.jpg 6 112 | domain_adaptation_images/dslr/images/monitor/frame_0011.jpg 6 113 | domain_adaptation_images/dslr/images/monitor/frame_0012.jpg 6 114 | domain_adaptation_images/dslr/images/monitor/frame_0013.jpg 6 115 | domain_adaptation_images/dslr/images/monitor/frame_0014.jpg 6 116 | domain_adaptation_images/dslr/images/monitor/frame_0015.jpg 6 117 | domain_adaptation_images/dslr/images/monitor/frame_0016.jpg 6 118 | domain_adaptation_images/dslr/images/monitor/frame_0017.jpg 6 119 | domain_adaptation_images/dslr/images/monitor/frame_0018.jpg 6 120 | domain_adaptation_images/dslr/images/monitor/frame_0019.jpg 6 121 | domain_adaptation_images/dslr/images/monitor/frame_0020.jpg 6 122 | domain_adaptation_images/dslr/images/monitor/frame_0021.jpg 6 123 | domain_adaptation_images/dslr/images/monitor/frame_0022.jpg 6 124 | domain_adaptation_images/dslr/images/mug/frame_0001.jpg 8 125 | domain_adaptation_images/dslr/images/mug/frame_0002.jpg 8 126 | domain_adaptation_images/dslr/images/mug/frame_0003.jpg 8 127 | domain_adaptation_images/dslr/images/mug/frame_0004.jpg 8 128 | domain_adaptation_images/dslr/images/mug/frame_0005.jpg 8 129 | domain_adaptation_images/dslr/images/mug/frame_0006.jpg 8 130 | domain_adaptation_images/dslr/images/mug/frame_0007.jpg 8 131 | domain_adaptation_images/dslr/images/mug/frame_0008.jpg 8 132 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0001.jpg 29 133 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0002.jpg 29 134 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0003.jpg 29 135 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0004.jpg 29 136 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0005.jpg 29 137 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0006.jpg 29 138 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0007.jpg 29 139 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0008.jpg 29 140 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0009.jpg 29 141 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0010.jpg 29 142 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0011.jpg 29 143 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0012.jpg 29 144 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0013.jpg 29 145 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0014.jpg 29 146 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0015.jpg 29 147 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0016.jpg 29 148 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0017.jpg 29 149 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0018.jpg 29 150 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0019.jpg 29 151 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0020.jpg 29 152 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0021.jpg 29 153 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0022.jpg 29 154 | domain_adaptation_images/dslr/images/pen/frame_0001.jpg 20 155 | domain_adaptation_images/dslr/images/pen/frame_0002.jpg 20 156 | domain_adaptation_images/dslr/images/pen/frame_0003.jpg 20 157 | domain_adaptation_images/dslr/images/pen/frame_0004.jpg 20 158 | domain_adaptation_images/dslr/images/pen/frame_0005.jpg 20 159 | domain_adaptation_images/dslr/images/pen/frame_0006.jpg 20 160 | domain_adaptation_images/dslr/images/pen/frame_0007.jpg 20 161 | domain_adaptation_images/dslr/images/pen/frame_0008.jpg 20 162 | domain_adaptation_images/dslr/images/pen/frame_0009.jpg 20 163 | domain_adaptation_images/dslr/images/pen/frame_0010.jpg 20 164 | domain_adaptation_images/dslr/images/bike/frame_0001.jpg 1 165 | domain_adaptation_images/dslr/images/bike/frame_0002.jpg 1 166 | domain_adaptation_images/dslr/images/bike/frame_0003.jpg 1 167 | domain_adaptation_images/dslr/images/bike/frame_0004.jpg 1 168 | domain_adaptation_images/dslr/images/bike/frame_0005.jpg 1 169 | domain_adaptation_images/dslr/images/bike/frame_0006.jpg 1 170 | domain_adaptation_images/dslr/images/bike/frame_0007.jpg 1 171 | domain_adaptation_images/dslr/images/bike/frame_0008.jpg 1 172 | domain_adaptation_images/dslr/images/bike/frame_0009.jpg 1 173 | domain_adaptation_images/dslr/images/bike/frame_0010.jpg 1 174 | domain_adaptation_images/dslr/images/bike/frame_0011.jpg 1 175 | domain_adaptation_images/dslr/images/bike/frame_0012.jpg 1 176 | domain_adaptation_images/dslr/images/bike/frame_0013.jpg 1 177 | domain_adaptation_images/dslr/images/bike/frame_0014.jpg 1 178 | domain_adaptation_images/dslr/images/bike/frame_0015.jpg 1 179 | domain_adaptation_images/dslr/images/bike/frame_0016.jpg 1 180 | domain_adaptation_images/dslr/images/bike/frame_0017.jpg 1 181 | domain_adaptation_images/dslr/images/bike/frame_0018.jpg 1 182 | domain_adaptation_images/dslr/images/bike/frame_0019.jpg 1 183 | domain_adaptation_images/dslr/images/bike/frame_0020.jpg 1 184 | domain_adaptation_images/dslr/images/bike/frame_0021.jpg 1 185 | domain_adaptation_images/dslr/images/punchers/frame_0001.jpg 23 186 | domain_adaptation_images/dslr/images/punchers/frame_0002.jpg 23 187 | domain_adaptation_images/dslr/images/punchers/frame_0003.jpg 23 188 | domain_adaptation_images/dslr/images/punchers/frame_0004.jpg 23 189 | domain_adaptation_images/dslr/images/punchers/frame_0005.jpg 23 190 | domain_adaptation_images/dslr/images/punchers/frame_0006.jpg 23 191 | domain_adaptation_images/dslr/images/punchers/frame_0007.jpg 23 192 | domain_adaptation_images/dslr/images/punchers/frame_0008.jpg 23 193 | domain_adaptation_images/dslr/images/punchers/frame_0009.jpg 23 194 | domain_adaptation_images/dslr/images/punchers/frame_0010.jpg 23 195 | domain_adaptation_images/dslr/images/punchers/frame_0011.jpg 23 196 | domain_adaptation_images/dslr/images/punchers/frame_0012.jpg 23 197 | domain_adaptation_images/dslr/images/punchers/frame_0013.jpg 23 198 | domain_adaptation_images/dslr/images/punchers/frame_0014.jpg 23 199 | domain_adaptation_images/dslr/images/punchers/frame_0015.jpg 23 200 | domain_adaptation_images/dslr/images/punchers/frame_0016.jpg 23 201 | domain_adaptation_images/dslr/images/punchers/frame_0017.jpg 23 202 | domain_adaptation_images/dslr/images/punchers/frame_0018.jpg 23 203 | domain_adaptation_images/dslr/images/back_pack/frame_0001.jpg 0 204 | domain_adaptation_images/dslr/images/back_pack/frame_0002.jpg 0 205 | domain_adaptation_images/dslr/images/back_pack/frame_0003.jpg 0 206 | domain_adaptation_images/dslr/images/back_pack/frame_0004.jpg 0 207 | domain_adaptation_images/dslr/images/back_pack/frame_0005.jpg 0 208 | domain_adaptation_images/dslr/images/back_pack/frame_0006.jpg 0 209 | domain_adaptation_images/dslr/images/back_pack/frame_0007.jpg 0 210 | domain_adaptation_images/dslr/images/back_pack/frame_0008.jpg 0 211 | domain_adaptation_images/dslr/images/back_pack/frame_0009.jpg 0 212 | domain_adaptation_images/dslr/images/back_pack/frame_0010.jpg 0 213 | domain_adaptation_images/dslr/images/back_pack/frame_0011.jpg 0 214 | domain_adaptation_images/dslr/images/back_pack/frame_0012.jpg 0 215 | domain_adaptation_images/dslr/images/desktop_computer/frame_0001.jpg 15 216 | domain_adaptation_images/dslr/images/desktop_computer/frame_0002.jpg 15 217 | domain_adaptation_images/dslr/images/desktop_computer/frame_0003.jpg 15 218 | domain_adaptation_images/dslr/images/desktop_computer/frame_0004.jpg 15 219 | domain_adaptation_images/dslr/images/desktop_computer/frame_0005.jpg 15 220 | domain_adaptation_images/dslr/images/desktop_computer/frame_0006.jpg 15 221 | domain_adaptation_images/dslr/images/desktop_computer/frame_0007.jpg 15 222 | domain_adaptation_images/dslr/images/desktop_computer/frame_0008.jpg 15 223 | domain_adaptation_images/dslr/images/desktop_computer/frame_0009.jpg 15 224 | domain_adaptation_images/dslr/images/desktop_computer/frame_0010.jpg 15 225 | domain_adaptation_images/dslr/images/desktop_computer/frame_0011.jpg 15 226 | domain_adaptation_images/dslr/images/desktop_computer/frame_0012.jpg 15 227 | domain_adaptation_images/dslr/images/desktop_computer/frame_0013.jpg 15 228 | domain_adaptation_images/dslr/images/desktop_computer/frame_0014.jpg 15 229 | domain_adaptation_images/dslr/images/desktop_computer/frame_0015.jpg 15 230 | domain_adaptation_images/dslr/images/speaker/frame_0001.jpg 27 231 | domain_adaptation_images/dslr/images/speaker/frame_0002.jpg 27 232 | domain_adaptation_images/dslr/images/speaker/frame_0003.jpg 27 233 | domain_adaptation_images/dslr/images/speaker/frame_0004.jpg 27 234 | domain_adaptation_images/dslr/images/speaker/frame_0005.jpg 27 235 | domain_adaptation_images/dslr/images/speaker/frame_0006.jpg 27 236 | domain_adaptation_images/dslr/images/speaker/frame_0007.jpg 27 237 | domain_adaptation_images/dslr/images/speaker/frame_0008.jpg 27 238 | domain_adaptation_images/dslr/images/speaker/frame_0009.jpg 27 239 | domain_adaptation_images/dslr/images/speaker/frame_0010.jpg 27 240 | domain_adaptation_images/dslr/images/speaker/frame_0011.jpg 27 241 | domain_adaptation_images/dslr/images/speaker/frame_0012.jpg 27 242 | domain_adaptation_images/dslr/images/speaker/frame_0013.jpg 27 243 | domain_adaptation_images/dslr/images/speaker/frame_0014.jpg 27 244 | domain_adaptation_images/dslr/images/speaker/frame_0015.jpg 27 245 | domain_adaptation_images/dslr/images/speaker/frame_0016.jpg 27 246 | domain_adaptation_images/dslr/images/speaker/frame_0017.jpg 27 247 | domain_adaptation_images/dslr/images/speaker/frame_0018.jpg 27 248 | domain_adaptation_images/dslr/images/speaker/frame_0019.jpg 27 249 | domain_adaptation_images/dslr/images/speaker/frame_0020.jpg 27 250 | domain_adaptation_images/dslr/images/speaker/frame_0021.jpg 27 251 | domain_adaptation_images/dslr/images/speaker/frame_0022.jpg 27 252 | domain_adaptation_images/dslr/images/speaker/frame_0023.jpg 27 253 | domain_adaptation_images/dslr/images/speaker/frame_0024.jpg 27 254 | domain_adaptation_images/dslr/images/speaker/frame_0025.jpg 27 255 | domain_adaptation_images/dslr/images/speaker/frame_0026.jpg 27 256 | domain_adaptation_images/dslr/images/mobile_phone/frame_0001.jpg 18 257 | domain_adaptation_images/dslr/images/mobile_phone/frame_0002.jpg 18 258 | domain_adaptation_images/dslr/images/mobile_phone/frame_0003.jpg 18 259 | domain_adaptation_images/dslr/images/mobile_phone/frame_0004.jpg 18 260 | domain_adaptation_images/dslr/images/mobile_phone/frame_0005.jpg 18 261 | domain_adaptation_images/dslr/images/mobile_phone/frame_0006.jpg 18 262 | domain_adaptation_images/dslr/images/mobile_phone/frame_0007.jpg 18 263 | domain_adaptation_images/dslr/images/mobile_phone/frame_0008.jpg 18 264 | domain_adaptation_images/dslr/images/mobile_phone/frame_0009.jpg 18 265 | domain_adaptation_images/dslr/images/mobile_phone/frame_0010.jpg 18 266 | domain_adaptation_images/dslr/images/mobile_phone/frame_0011.jpg 18 267 | domain_adaptation_images/dslr/images/mobile_phone/frame_0012.jpg 18 268 | domain_adaptation_images/dslr/images/mobile_phone/frame_0013.jpg 18 269 | domain_adaptation_images/dslr/images/mobile_phone/frame_0014.jpg 18 270 | domain_adaptation_images/dslr/images/mobile_phone/frame_0015.jpg 18 271 | domain_adaptation_images/dslr/images/mobile_phone/frame_0016.jpg 18 272 | domain_adaptation_images/dslr/images/mobile_phone/frame_0017.jpg 18 273 | domain_adaptation_images/dslr/images/mobile_phone/frame_0018.jpg 18 274 | domain_adaptation_images/dslr/images/mobile_phone/frame_0019.jpg 18 275 | domain_adaptation_images/dslr/images/mobile_phone/frame_0020.jpg 18 276 | domain_adaptation_images/dslr/images/mobile_phone/frame_0021.jpg 18 277 | domain_adaptation_images/dslr/images/mobile_phone/frame_0022.jpg 18 278 | domain_adaptation_images/dslr/images/mobile_phone/frame_0023.jpg 18 279 | domain_adaptation_images/dslr/images/mobile_phone/frame_0024.jpg 18 280 | domain_adaptation_images/dslr/images/mobile_phone/frame_0025.jpg 18 281 | domain_adaptation_images/dslr/images/mobile_phone/frame_0026.jpg 18 282 | domain_adaptation_images/dslr/images/mobile_phone/frame_0027.jpg 18 283 | domain_adaptation_images/dslr/images/mobile_phone/frame_0028.jpg 18 284 | domain_adaptation_images/dslr/images/mobile_phone/frame_0029.jpg 18 285 | domain_adaptation_images/dslr/images/mobile_phone/frame_0030.jpg 18 286 | domain_adaptation_images/dslr/images/mobile_phone/frame_0031.jpg 18 287 | domain_adaptation_images/dslr/images/paper_notebook/frame_0001.jpg 19 288 | domain_adaptation_images/dslr/images/paper_notebook/frame_0002.jpg 19 289 | domain_adaptation_images/dslr/images/paper_notebook/frame_0003.jpg 19 290 | domain_adaptation_images/dslr/images/paper_notebook/frame_0004.jpg 19 291 | domain_adaptation_images/dslr/images/paper_notebook/frame_0005.jpg 19 292 | domain_adaptation_images/dslr/images/paper_notebook/frame_0006.jpg 19 293 | domain_adaptation_images/dslr/images/paper_notebook/frame_0007.jpg 19 294 | domain_adaptation_images/dslr/images/paper_notebook/frame_0008.jpg 19 295 | domain_adaptation_images/dslr/images/paper_notebook/frame_0009.jpg 19 296 | domain_adaptation_images/dslr/images/paper_notebook/frame_0010.jpg 19 297 | domain_adaptation_images/dslr/images/ruler/frame_0001.jpg 25 298 | domain_adaptation_images/dslr/images/ruler/frame_0002.jpg 25 299 | domain_adaptation_images/dslr/images/ruler/frame_0003.jpg 25 300 | domain_adaptation_images/dslr/images/ruler/frame_0004.jpg 25 301 | domain_adaptation_images/dslr/images/ruler/frame_0005.jpg 25 302 | domain_adaptation_images/dslr/images/ruler/frame_0006.jpg 25 303 | domain_adaptation_images/dslr/images/ruler/frame_0007.jpg 25 304 | domain_adaptation_images/dslr/images/letter_tray/frame_0001.jpg 17 305 | domain_adaptation_images/dslr/images/letter_tray/frame_0002.jpg 17 306 | domain_adaptation_images/dslr/images/letter_tray/frame_0003.jpg 17 307 | domain_adaptation_images/dslr/images/letter_tray/frame_0004.jpg 17 308 | domain_adaptation_images/dslr/images/letter_tray/frame_0005.jpg 17 309 | domain_adaptation_images/dslr/images/letter_tray/frame_0006.jpg 17 310 | domain_adaptation_images/dslr/images/letter_tray/frame_0007.jpg 17 311 | domain_adaptation_images/dslr/images/letter_tray/frame_0008.jpg 17 312 | domain_adaptation_images/dslr/images/letter_tray/frame_0009.jpg 17 313 | domain_adaptation_images/dslr/images/letter_tray/frame_0010.jpg 17 314 | domain_adaptation_images/dslr/images/letter_tray/frame_0011.jpg 17 315 | domain_adaptation_images/dslr/images/letter_tray/frame_0012.jpg 17 316 | domain_adaptation_images/dslr/images/letter_tray/frame_0013.jpg 17 317 | domain_adaptation_images/dslr/images/letter_tray/frame_0014.jpg 17 318 | domain_adaptation_images/dslr/images/letter_tray/frame_0015.jpg 17 319 | domain_adaptation_images/dslr/images/letter_tray/frame_0016.jpg 17 320 | domain_adaptation_images/dslr/images/file_cabinet/frame_0001.jpg 16 321 | domain_adaptation_images/dslr/images/file_cabinet/frame_0002.jpg 16 322 | domain_adaptation_images/dslr/images/file_cabinet/frame_0003.jpg 16 323 | domain_adaptation_images/dslr/images/file_cabinet/frame_0004.jpg 16 324 | domain_adaptation_images/dslr/images/file_cabinet/frame_0005.jpg 16 325 | domain_adaptation_images/dslr/images/file_cabinet/frame_0006.jpg 16 326 | domain_adaptation_images/dslr/images/file_cabinet/frame_0007.jpg 16 327 | domain_adaptation_images/dslr/images/file_cabinet/frame_0008.jpg 16 328 | domain_adaptation_images/dslr/images/file_cabinet/frame_0009.jpg 16 329 | domain_adaptation_images/dslr/images/file_cabinet/frame_0010.jpg 16 330 | domain_adaptation_images/dslr/images/file_cabinet/frame_0011.jpg 16 331 | domain_adaptation_images/dslr/images/file_cabinet/frame_0012.jpg 16 332 | domain_adaptation_images/dslr/images/file_cabinet/frame_0013.jpg 16 333 | domain_adaptation_images/dslr/images/file_cabinet/frame_0014.jpg 16 334 | domain_adaptation_images/dslr/images/file_cabinet/frame_0015.jpg 16 335 | domain_adaptation_images/dslr/images/phone/frame_0001.jpg 21 336 | domain_adaptation_images/dslr/images/phone/frame_0002.jpg 21 337 | domain_adaptation_images/dslr/images/phone/frame_0003.jpg 21 338 | domain_adaptation_images/dslr/images/phone/frame_0004.jpg 21 339 | domain_adaptation_images/dslr/images/phone/frame_0005.jpg 21 340 | domain_adaptation_images/dslr/images/phone/frame_0006.jpg 21 341 | domain_adaptation_images/dslr/images/phone/frame_0007.jpg 21 342 | domain_adaptation_images/dslr/images/phone/frame_0008.jpg 21 343 | domain_adaptation_images/dslr/images/phone/frame_0009.jpg 21 344 | domain_adaptation_images/dslr/images/phone/frame_0010.jpg 21 345 | domain_adaptation_images/dslr/images/phone/frame_0011.jpg 21 346 | domain_adaptation_images/dslr/images/phone/frame_0012.jpg 21 347 | domain_adaptation_images/dslr/images/phone/frame_0013.jpg 21 348 | domain_adaptation_images/dslr/images/bookcase/frame_0001.jpg 11 349 | domain_adaptation_images/dslr/images/bookcase/frame_0002.jpg 11 350 | domain_adaptation_images/dslr/images/bookcase/frame_0003.jpg 11 351 | domain_adaptation_images/dslr/images/bookcase/frame_0004.jpg 11 352 | domain_adaptation_images/dslr/images/bookcase/frame_0005.jpg 11 353 | domain_adaptation_images/dslr/images/bookcase/frame_0006.jpg 11 354 | domain_adaptation_images/dslr/images/bookcase/frame_0007.jpg 11 355 | domain_adaptation_images/dslr/images/bookcase/frame_0008.jpg 11 356 | domain_adaptation_images/dslr/images/bookcase/frame_0009.jpg 11 357 | domain_adaptation_images/dslr/images/bookcase/frame_0010.jpg 11 358 | domain_adaptation_images/dslr/images/bookcase/frame_0011.jpg 11 359 | domain_adaptation_images/dslr/images/bookcase/frame_0012.jpg 11 360 | domain_adaptation_images/dslr/images/projector/frame_0001.jpg 9 361 | domain_adaptation_images/dslr/images/projector/frame_0002.jpg 9 362 | domain_adaptation_images/dslr/images/projector/frame_0003.jpg 9 363 | domain_adaptation_images/dslr/images/projector/frame_0004.jpg 9 364 | domain_adaptation_images/dslr/images/projector/frame_0005.jpg 9 365 | domain_adaptation_images/dslr/images/projector/frame_0006.jpg 9 366 | domain_adaptation_images/dslr/images/projector/frame_0007.jpg 9 367 | domain_adaptation_images/dslr/images/projector/frame_0008.jpg 9 368 | domain_adaptation_images/dslr/images/projector/frame_0009.jpg 9 369 | domain_adaptation_images/dslr/images/projector/frame_0010.jpg 9 370 | domain_adaptation_images/dslr/images/projector/frame_0011.jpg 9 371 | domain_adaptation_images/dslr/images/projector/frame_0012.jpg 9 372 | domain_adaptation_images/dslr/images/projector/frame_0013.jpg 9 373 | domain_adaptation_images/dslr/images/projector/frame_0014.jpg 9 374 | domain_adaptation_images/dslr/images/projector/frame_0015.jpg 9 375 | domain_adaptation_images/dslr/images/projector/frame_0016.jpg 9 376 | domain_adaptation_images/dslr/images/projector/frame_0017.jpg 9 377 | domain_adaptation_images/dslr/images/projector/frame_0018.jpg 9 378 | domain_adaptation_images/dslr/images/projector/frame_0019.jpg 9 379 | domain_adaptation_images/dslr/images/projector/frame_0020.jpg 9 380 | domain_adaptation_images/dslr/images/projector/frame_0021.jpg 9 381 | domain_adaptation_images/dslr/images/projector/frame_0022.jpg 9 382 | domain_adaptation_images/dslr/images/projector/frame_0023.jpg 9 383 | domain_adaptation_images/dslr/images/stapler/frame_0001.jpg 28 384 | domain_adaptation_images/dslr/images/stapler/frame_0002.jpg 28 385 | domain_adaptation_images/dslr/images/stapler/frame_0003.jpg 28 386 | domain_adaptation_images/dslr/images/stapler/frame_0004.jpg 28 387 | domain_adaptation_images/dslr/images/stapler/frame_0005.jpg 28 388 | domain_adaptation_images/dslr/images/stapler/frame_0006.jpg 28 389 | domain_adaptation_images/dslr/images/stapler/frame_0007.jpg 28 390 | domain_adaptation_images/dslr/images/stapler/frame_0008.jpg 28 391 | domain_adaptation_images/dslr/images/stapler/frame_0009.jpg 28 392 | domain_adaptation_images/dslr/images/stapler/frame_0010.jpg 28 393 | domain_adaptation_images/dslr/images/stapler/frame_0011.jpg 28 394 | domain_adaptation_images/dslr/images/stapler/frame_0012.jpg 28 395 | domain_adaptation_images/dslr/images/stapler/frame_0013.jpg 28 396 | domain_adaptation_images/dslr/images/stapler/frame_0014.jpg 28 397 | domain_adaptation_images/dslr/images/stapler/frame_0015.jpg 28 398 | domain_adaptation_images/dslr/images/stapler/frame_0016.jpg 28 399 | domain_adaptation_images/dslr/images/stapler/frame_0017.jpg 28 400 | domain_adaptation_images/dslr/images/stapler/frame_0018.jpg 28 401 | domain_adaptation_images/dslr/images/stapler/frame_0019.jpg 28 402 | domain_adaptation_images/dslr/images/stapler/frame_0020.jpg 28 403 | domain_adaptation_images/dslr/images/stapler/frame_0021.jpg 28 404 | domain_adaptation_images/dslr/images/trash_can/frame_0001.jpg 30 405 | domain_adaptation_images/dslr/images/trash_can/frame_0002.jpg 30 406 | domain_adaptation_images/dslr/images/trash_can/frame_0003.jpg 30 407 | domain_adaptation_images/dslr/images/trash_can/frame_0004.jpg 30 408 | domain_adaptation_images/dslr/images/trash_can/frame_0005.jpg 30 409 | domain_adaptation_images/dslr/images/trash_can/frame_0006.jpg 30 410 | domain_adaptation_images/dslr/images/trash_can/frame_0007.jpg 30 411 | domain_adaptation_images/dslr/images/trash_can/frame_0008.jpg 30 412 | domain_adaptation_images/dslr/images/trash_can/frame_0009.jpg 30 413 | domain_adaptation_images/dslr/images/trash_can/frame_0010.jpg 30 414 | domain_adaptation_images/dslr/images/trash_can/frame_0011.jpg 30 415 | domain_adaptation_images/dslr/images/trash_can/frame_0012.jpg 30 416 | domain_adaptation_images/dslr/images/trash_can/frame_0013.jpg 30 417 | domain_adaptation_images/dslr/images/trash_can/frame_0014.jpg 30 418 | domain_adaptation_images/dslr/images/trash_can/frame_0015.jpg 30 419 | domain_adaptation_images/dslr/images/bike_helmet/frame_0001.jpg 10 420 | domain_adaptation_images/dslr/images/bike_helmet/frame_0002.jpg 10 421 | domain_adaptation_images/dslr/images/bike_helmet/frame_0003.jpg 10 422 | domain_adaptation_images/dslr/images/bike_helmet/frame_0004.jpg 10 423 | domain_adaptation_images/dslr/images/bike_helmet/frame_0005.jpg 10 424 | domain_adaptation_images/dslr/images/bike_helmet/frame_0006.jpg 10 425 | domain_adaptation_images/dslr/images/bike_helmet/frame_0007.jpg 10 426 | domain_adaptation_images/dslr/images/bike_helmet/frame_0008.jpg 10 427 | domain_adaptation_images/dslr/images/bike_helmet/frame_0009.jpg 10 428 | domain_adaptation_images/dslr/images/bike_helmet/frame_0010.jpg 10 429 | domain_adaptation_images/dslr/images/bike_helmet/frame_0011.jpg 10 430 | domain_adaptation_images/dslr/images/bike_helmet/frame_0012.jpg 10 431 | domain_adaptation_images/dslr/images/bike_helmet/frame_0013.jpg 10 432 | domain_adaptation_images/dslr/images/bike_helmet/frame_0014.jpg 10 433 | domain_adaptation_images/dslr/images/bike_helmet/frame_0015.jpg 10 434 | domain_adaptation_images/dslr/images/bike_helmet/frame_0016.jpg 10 435 | domain_adaptation_images/dslr/images/bike_helmet/frame_0017.jpg 10 436 | domain_adaptation_images/dslr/images/bike_helmet/frame_0018.jpg 10 437 | domain_adaptation_images/dslr/images/bike_helmet/frame_0019.jpg 10 438 | domain_adaptation_images/dslr/images/bike_helmet/frame_0020.jpg 10 439 | domain_adaptation_images/dslr/images/bike_helmet/frame_0021.jpg 10 440 | domain_adaptation_images/dslr/images/bike_helmet/frame_0022.jpg 10 441 | domain_adaptation_images/dslr/images/bike_helmet/frame_0023.jpg 10 442 | domain_adaptation_images/dslr/images/bike_helmet/frame_0024.jpg 10 443 | domain_adaptation_images/dslr/images/headphones/frame_0001.jpg 3 444 | domain_adaptation_images/dslr/images/headphones/frame_0002.jpg 3 445 | domain_adaptation_images/dslr/images/headphones/frame_0003.jpg 3 446 | domain_adaptation_images/dslr/images/headphones/frame_0004.jpg 3 447 | domain_adaptation_images/dslr/images/headphones/frame_0005.jpg 3 448 | domain_adaptation_images/dslr/images/headphones/frame_0006.jpg 3 449 | domain_adaptation_images/dslr/images/headphones/frame_0007.jpg 3 450 | domain_adaptation_images/dslr/images/headphones/frame_0008.jpg 3 451 | domain_adaptation_images/dslr/images/headphones/frame_0009.jpg 3 452 | domain_adaptation_images/dslr/images/headphones/frame_0010.jpg 3 453 | domain_adaptation_images/dslr/images/headphones/frame_0011.jpg 3 454 | domain_adaptation_images/dslr/images/headphones/frame_0012.jpg 3 455 | domain_adaptation_images/dslr/images/headphones/frame_0013.jpg 3 456 | domain_adaptation_images/dslr/images/desk_lamp/frame_0001.jpg 14 457 | domain_adaptation_images/dslr/images/desk_lamp/frame_0002.jpg 14 458 | domain_adaptation_images/dslr/images/desk_lamp/frame_0003.jpg 14 459 | domain_adaptation_images/dslr/images/desk_lamp/frame_0004.jpg 14 460 | domain_adaptation_images/dslr/images/desk_lamp/frame_0005.jpg 14 461 | domain_adaptation_images/dslr/images/desk_lamp/frame_0006.jpg 14 462 | domain_adaptation_images/dslr/images/desk_lamp/frame_0007.jpg 14 463 | domain_adaptation_images/dslr/images/desk_lamp/frame_0008.jpg 14 464 | domain_adaptation_images/dslr/images/desk_lamp/frame_0009.jpg 14 465 | domain_adaptation_images/dslr/images/desk_lamp/frame_0010.jpg 14 466 | domain_adaptation_images/dslr/images/desk_lamp/frame_0011.jpg 14 467 | domain_adaptation_images/dslr/images/desk_lamp/frame_0012.jpg 14 468 | domain_adaptation_images/dslr/images/desk_lamp/frame_0013.jpg 14 469 | domain_adaptation_images/dslr/images/desk_lamp/frame_0014.jpg 14 470 | domain_adaptation_images/dslr/images/desk_chair/frame_0001.jpg 13 471 | domain_adaptation_images/dslr/images/desk_chair/frame_0002.jpg 13 472 | domain_adaptation_images/dslr/images/desk_chair/frame_0003.jpg 13 473 | domain_adaptation_images/dslr/images/desk_chair/frame_0004.jpg 13 474 | domain_adaptation_images/dslr/images/desk_chair/frame_0005.jpg 13 475 | domain_adaptation_images/dslr/images/desk_chair/frame_0006.jpg 13 476 | domain_adaptation_images/dslr/images/desk_chair/frame_0007.jpg 13 477 | domain_adaptation_images/dslr/images/desk_chair/frame_0008.jpg 13 478 | domain_adaptation_images/dslr/images/desk_chair/frame_0009.jpg 13 479 | domain_adaptation_images/dslr/images/desk_chair/frame_0010.jpg 13 480 | domain_adaptation_images/dslr/images/desk_chair/frame_0011.jpg 13 481 | domain_adaptation_images/dslr/images/desk_chair/frame_0012.jpg 13 482 | domain_adaptation_images/dslr/images/desk_chair/frame_0013.jpg 13 483 | domain_adaptation_images/dslr/images/bottle/frame_0001.jpg 12 484 | domain_adaptation_images/dslr/images/bottle/frame_0002.jpg 12 485 | domain_adaptation_images/dslr/images/bottle/frame_0003.jpg 12 486 | domain_adaptation_images/dslr/images/bottle/frame_0004.jpg 12 487 | domain_adaptation_images/dslr/images/bottle/frame_0005.jpg 12 488 | domain_adaptation_images/dslr/images/bottle/frame_0006.jpg 12 489 | domain_adaptation_images/dslr/images/bottle/frame_0007.jpg 12 490 | domain_adaptation_images/dslr/images/bottle/frame_0008.jpg 12 491 | domain_adaptation_images/dslr/images/bottle/frame_0009.jpg 12 492 | domain_adaptation_images/dslr/images/bottle/frame_0010.jpg 12 493 | domain_adaptation_images/dslr/images/bottle/frame_0011.jpg 12 494 | domain_adaptation_images/dslr/images/bottle/frame_0012.jpg 12 495 | domain_adaptation_images/dslr/images/bottle/frame_0013.jpg 12 496 | domain_adaptation_images/dslr/images/bottle/frame_0014.jpg 12 497 | domain_adaptation_images/dslr/images/bottle/frame_0015.jpg 12 498 | domain_adaptation_images/dslr/images/bottle/frame_0016.jpg 12 499 | -------------------------------------------------------------------------------- /data/office/webcam_reorgnized.txt: -------------------------------------------------------------------------------- 1 | domain_adaptation_images/webcam/images/calculator/frame_0001.jpg 2 2 | domain_adaptation_images/webcam/images/calculator/frame_0002.jpg 2 3 | domain_adaptation_images/webcam/images/calculator/frame_0003.jpg 2 4 | domain_adaptation_images/webcam/images/calculator/frame_0004.jpg 2 5 | domain_adaptation_images/webcam/images/calculator/frame_0005.jpg 2 6 | domain_adaptation_images/webcam/images/calculator/frame_0006.jpg 2 7 | domain_adaptation_images/webcam/images/calculator/frame_0007.jpg 2 8 | domain_adaptation_images/webcam/images/calculator/frame_0008.jpg 2 9 | domain_adaptation_images/webcam/images/calculator/frame_0009.jpg 2 10 | domain_adaptation_images/webcam/images/calculator/frame_0010.jpg 2 11 | domain_adaptation_images/webcam/images/calculator/frame_0011.jpg 2 12 | domain_adaptation_images/webcam/images/calculator/frame_0012.jpg 2 13 | domain_adaptation_images/webcam/images/calculator/frame_0013.jpg 2 14 | domain_adaptation_images/webcam/images/calculator/frame_0014.jpg 2 15 | domain_adaptation_images/webcam/images/calculator/frame_0015.jpg 2 16 | domain_adaptation_images/webcam/images/calculator/frame_0016.jpg 2 17 | domain_adaptation_images/webcam/images/calculator/frame_0017.jpg 2 18 | domain_adaptation_images/webcam/images/calculator/frame_0018.jpg 2 19 | domain_adaptation_images/webcam/images/calculator/frame_0019.jpg 2 20 | domain_adaptation_images/webcam/images/calculator/frame_0020.jpg 2 21 | domain_adaptation_images/webcam/images/calculator/frame_0021.jpg 2 22 | domain_adaptation_images/webcam/images/calculator/frame_0022.jpg 2 23 | domain_adaptation_images/webcam/images/calculator/frame_0023.jpg 2 24 | domain_adaptation_images/webcam/images/calculator/frame_0024.jpg 2 25 | domain_adaptation_images/webcam/images/calculator/frame_0025.jpg 2 26 | domain_adaptation_images/webcam/images/calculator/frame_0026.jpg 2 27 | domain_adaptation_images/webcam/images/calculator/frame_0027.jpg 2 28 | domain_adaptation_images/webcam/images/calculator/frame_0028.jpg 2 29 | domain_adaptation_images/webcam/images/calculator/frame_0029.jpg 2 30 | domain_adaptation_images/webcam/images/calculator/frame_0030.jpg 2 31 | domain_adaptation_images/webcam/images/calculator/frame_0031.jpg 2 32 | domain_adaptation_images/webcam/images/ring_binder/frame_0001.jpg 24 33 | domain_adaptation_images/webcam/images/ring_binder/frame_0002.jpg 24 34 | domain_adaptation_images/webcam/images/ring_binder/frame_0003.jpg 24 35 | domain_adaptation_images/webcam/images/ring_binder/frame_0004.jpg 24 36 | domain_adaptation_images/webcam/images/ring_binder/frame_0005.jpg 24 37 | domain_adaptation_images/webcam/images/ring_binder/frame_0006.jpg 24 38 | domain_adaptation_images/webcam/images/ring_binder/frame_0007.jpg 24 39 | domain_adaptation_images/webcam/images/ring_binder/frame_0008.jpg 24 40 | domain_adaptation_images/webcam/images/ring_binder/frame_0009.jpg 24 41 | domain_adaptation_images/webcam/images/ring_binder/frame_0010.jpg 24 42 | domain_adaptation_images/webcam/images/ring_binder/frame_0011.jpg 24 43 | domain_adaptation_images/webcam/images/ring_binder/frame_0012.jpg 24 44 | domain_adaptation_images/webcam/images/ring_binder/frame_0013.jpg 24 45 | domain_adaptation_images/webcam/images/ring_binder/frame_0014.jpg 24 46 | domain_adaptation_images/webcam/images/ring_binder/frame_0015.jpg 24 47 | domain_adaptation_images/webcam/images/ring_binder/frame_0016.jpg 24 48 | domain_adaptation_images/webcam/images/ring_binder/frame_0017.jpg 24 49 | domain_adaptation_images/webcam/images/ring_binder/frame_0018.jpg 24 50 | domain_adaptation_images/webcam/images/ring_binder/frame_0019.jpg 24 51 | domain_adaptation_images/webcam/images/ring_binder/frame_0020.jpg 24 52 | domain_adaptation_images/webcam/images/ring_binder/frame_0021.jpg 24 53 | domain_adaptation_images/webcam/images/ring_binder/frame_0022.jpg 24 54 | domain_adaptation_images/webcam/images/ring_binder/frame_0023.jpg 24 55 | domain_adaptation_images/webcam/images/ring_binder/frame_0024.jpg 24 56 | domain_adaptation_images/webcam/images/ring_binder/frame_0025.jpg 24 57 | domain_adaptation_images/webcam/images/ring_binder/frame_0026.jpg 24 58 | domain_adaptation_images/webcam/images/ring_binder/frame_0027.jpg 24 59 | domain_adaptation_images/webcam/images/ring_binder/frame_0028.jpg 24 60 | domain_adaptation_images/webcam/images/ring_binder/frame_0029.jpg 24 61 | domain_adaptation_images/webcam/images/ring_binder/frame_0030.jpg 24 62 | domain_adaptation_images/webcam/images/ring_binder/frame_0031.jpg 24 63 | domain_adaptation_images/webcam/images/ring_binder/frame_0032.jpg 24 64 | domain_adaptation_images/webcam/images/ring_binder/frame_0033.jpg 24 65 | domain_adaptation_images/webcam/images/ring_binder/frame_0034.jpg 24 66 | domain_adaptation_images/webcam/images/ring_binder/frame_0035.jpg 24 67 | domain_adaptation_images/webcam/images/ring_binder/frame_0036.jpg 24 68 | domain_adaptation_images/webcam/images/ring_binder/frame_0037.jpg 24 69 | domain_adaptation_images/webcam/images/ring_binder/frame_0038.jpg 24 70 | domain_adaptation_images/webcam/images/ring_binder/frame_0039.jpg 24 71 | domain_adaptation_images/webcam/images/ring_binder/frame_0040.jpg 24 72 | domain_adaptation_images/webcam/images/printer/frame_0001.jpg 22 73 | domain_adaptation_images/webcam/images/printer/frame_0002.jpg 22 74 | domain_adaptation_images/webcam/images/printer/frame_0003.jpg 22 75 | domain_adaptation_images/webcam/images/printer/frame_0004.jpg 22 76 | domain_adaptation_images/webcam/images/printer/frame_0005.jpg 22 77 | domain_adaptation_images/webcam/images/printer/frame_0006.jpg 22 78 | domain_adaptation_images/webcam/images/printer/frame_0007.jpg 22 79 | domain_adaptation_images/webcam/images/printer/frame_0008.jpg 22 80 | domain_adaptation_images/webcam/images/printer/frame_0009.jpg 22 81 | domain_adaptation_images/webcam/images/printer/frame_0010.jpg 22 82 | domain_adaptation_images/webcam/images/printer/frame_0011.jpg 22 83 | domain_adaptation_images/webcam/images/printer/frame_0012.jpg 22 84 | domain_adaptation_images/webcam/images/printer/frame_0013.jpg 22 85 | domain_adaptation_images/webcam/images/printer/frame_0014.jpg 22 86 | domain_adaptation_images/webcam/images/printer/frame_0015.jpg 22 87 | domain_adaptation_images/webcam/images/printer/frame_0016.jpg 22 88 | domain_adaptation_images/webcam/images/printer/frame_0017.jpg 22 89 | domain_adaptation_images/webcam/images/printer/frame_0018.jpg 22 90 | domain_adaptation_images/webcam/images/printer/frame_0019.jpg 22 91 | domain_adaptation_images/webcam/images/printer/frame_0020.jpg 22 92 | domain_adaptation_images/webcam/images/keyboard/frame_0001.jpg 4 93 | domain_adaptation_images/webcam/images/keyboard/frame_0002.jpg 4 94 | domain_adaptation_images/webcam/images/keyboard/frame_0003.jpg 4 95 | domain_adaptation_images/webcam/images/keyboard/frame_0004.jpg 4 96 | domain_adaptation_images/webcam/images/keyboard/frame_0005.jpg 4 97 | domain_adaptation_images/webcam/images/keyboard/frame_0006.jpg 4 98 | domain_adaptation_images/webcam/images/keyboard/frame_0007.jpg 4 99 | domain_adaptation_images/webcam/images/keyboard/frame_0008.jpg 4 100 | domain_adaptation_images/webcam/images/keyboard/frame_0009.jpg 4 101 | domain_adaptation_images/webcam/images/keyboard/frame_0010.jpg 4 102 | domain_adaptation_images/webcam/images/keyboard/frame_0011.jpg 4 103 | domain_adaptation_images/webcam/images/keyboard/frame_0012.jpg 4 104 | domain_adaptation_images/webcam/images/keyboard/frame_0013.jpg 4 105 | domain_adaptation_images/webcam/images/keyboard/frame_0014.jpg 4 106 | domain_adaptation_images/webcam/images/keyboard/frame_0015.jpg 4 107 | domain_adaptation_images/webcam/images/keyboard/frame_0016.jpg 4 108 | domain_adaptation_images/webcam/images/keyboard/frame_0017.jpg 4 109 | domain_adaptation_images/webcam/images/keyboard/frame_0018.jpg 4 110 | domain_adaptation_images/webcam/images/keyboard/frame_0019.jpg 4 111 | domain_adaptation_images/webcam/images/keyboard/frame_0020.jpg 4 112 | domain_adaptation_images/webcam/images/keyboard/frame_0021.jpg 4 113 | domain_adaptation_images/webcam/images/keyboard/frame_0022.jpg 4 114 | domain_adaptation_images/webcam/images/keyboard/frame_0023.jpg 4 115 | domain_adaptation_images/webcam/images/keyboard/frame_0024.jpg 4 116 | domain_adaptation_images/webcam/images/keyboard/frame_0025.jpg 4 117 | domain_adaptation_images/webcam/images/keyboard/frame_0026.jpg 4 118 | domain_adaptation_images/webcam/images/keyboard/frame_0027.jpg 4 119 | domain_adaptation_images/webcam/images/scissors/frame_0001.jpg 26 120 | domain_adaptation_images/webcam/images/scissors/frame_0002.jpg 26 121 | domain_adaptation_images/webcam/images/scissors/frame_0003.jpg 26 122 | domain_adaptation_images/webcam/images/scissors/frame_0004.jpg 26 123 | domain_adaptation_images/webcam/images/scissors/frame_0005.jpg 26 124 | domain_adaptation_images/webcam/images/scissors/frame_0006.jpg 26 125 | domain_adaptation_images/webcam/images/scissors/frame_0007.jpg 26 126 | domain_adaptation_images/webcam/images/scissors/frame_0008.jpg 26 127 | domain_adaptation_images/webcam/images/scissors/frame_0009.jpg 26 128 | domain_adaptation_images/webcam/images/scissors/frame_0010.jpg 26 129 | domain_adaptation_images/webcam/images/scissors/frame_0011.jpg 26 130 | domain_adaptation_images/webcam/images/scissors/frame_0012.jpg 26 131 | domain_adaptation_images/webcam/images/scissors/frame_0013.jpg 26 132 | domain_adaptation_images/webcam/images/scissors/frame_0014.jpg 26 133 | domain_adaptation_images/webcam/images/scissors/frame_0015.jpg 26 134 | domain_adaptation_images/webcam/images/scissors/frame_0016.jpg 26 135 | domain_adaptation_images/webcam/images/scissors/frame_0017.jpg 26 136 | domain_adaptation_images/webcam/images/scissors/frame_0018.jpg 26 137 | domain_adaptation_images/webcam/images/scissors/frame_0019.jpg 26 138 | domain_adaptation_images/webcam/images/scissors/frame_0020.jpg 26 139 | domain_adaptation_images/webcam/images/scissors/frame_0021.jpg 26 140 | domain_adaptation_images/webcam/images/scissors/frame_0022.jpg 26 141 | domain_adaptation_images/webcam/images/scissors/frame_0023.jpg 26 142 | domain_adaptation_images/webcam/images/scissors/frame_0024.jpg 26 143 | domain_adaptation_images/webcam/images/scissors/frame_0025.jpg 26 144 | domain_adaptation_images/webcam/images/laptop_computer/frame_0001.jpg 5 145 | domain_adaptation_images/webcam/images/laptop_computer/frame_0002.jpg 5 146 | domain_adaptation_images/webcam/images/laptop_computer/frame_0003.jpg 5 147 | domain_adaptation_images/webcam/images/laptop_computer/frame_0004.jpg 5 148 | domain_adaptation_images/webcam/images/laptop_computer/frame_0005.jpg 5 149 | domain_adaptation_images/webcam/images/laptop_computer/frame_0006.jpg 5 150 | domain_adaptation_images/webcam/images/laptop_computer/frame_0007.jpg 5 151 | domain_adaptation_images/webcam/images/laptop_computer/frame_0008.jpg 5 152 | domain_adaptation_images/webcam/images/laptop_computer/frame_0009.jpg 5 153 | domain_adaptation_images/webcam/images/laptop_computer/frame_0010.jpg 5 154 | domain_adaptation_images/webcam/images/laptop_computer/frame_0011.jpg 5 155 | domain_adaptation_images/webcam/images/laptop_computer/frame_0012.jpg 5 156 | domain_adaptation_images/webcam/images/laptop_computer/frame_0013.jpg 5 157 | domain_adaptation_images/webcam/images/laptop_computer/frame_0014.jpg 5 158 | domain_adaptation_images/webcam/images/laptop_computer/frame_0015.jpg 5 159 | domain_adaptation_images/webcam/images/laptop_computer/frame_0016.jpg 5 160 | domain_adaptation_images/webcam/images/laptop_computer/frame_0017.jpg 5 161 | domain_adaptation_images/webcam/images/laptop_computer/frame_0018.jpg 5 162 | domain_adaptation_images/webcam/images/laptop_computer/frame_0019.jpg 5 163 | domain_adaptation_images/webcam/images/laptop_computer/frame_0020.jpg 5 164 | domain_adaptation_images/webcam/images/laptop_computer/frame_0021.jpg 5 165 | domain_adaptation_images/webcam/images/laptop_computer/frame_0022.jpg 5 166 | domain_adaptation_images/webcam/images/laptop_computer/frame_0023.jpg 5 167 | domain_adaptation_images/webcam/images/laptop_computer/frame_0024.jpg 5 168 | domain_adaptation_images/webcam/images/laptop_computer/frame_0025.jpg 5 169 | domain_adaptation_images/webcam/images/laptop_computer/frame_0026.jpg 5 170 | domain_adaptation_images/webcam/images/laptop_computer/frame_0027.jpg 5 171 | domain_adaptation_images/webcam/images/laptop_computer/frame_0028.jpg 5 172 | domain_adaptation_images/webcam/images/laptop_computer/frame_0029.jpg 5 173 | domain_adaptation_images/webcam/images/laptop_computer/frame_0030.jpg 5 174 | domain_adaptation_images/webcam/images/mouse/frame_0001.jpg 7 175 | domain_adaptation_images/webcam/images/mouse/frame_0002.jpg 7 176 | domain_adaptation_images/webcam/images/mouse/frame_0003.jpg 7 177 | domain_adaptation_images/webcam/images/mouse/frame_0004.jpg 7 178 | domain_adaptation_images/webcam/images/mouse/frame_0005.jpg 7 179 | domain_adaptation_images/webcam/images/mouse/frame_0006.jpg 7 180 | domain_adaptation_images/webcam/images/mouse/frame_0007.jpg 7 181 | domain_adaptation_images/webcam/images/mouse/frame_0008.jpg 7 182 | domain_adaptation_images/webcam/images/mouse/frame_0009.jpg 7 183 | domain_adaptation_images/webcam/images/mouse/frame_0010.jpg 7 184 | domain_adaptation_images/webcam/images/mouse/frame_0011.jpg 7 185 | domain_adaptation_images/webcam/images/mouse/frame_0012.jpg 7 186 | domain_adaptation_images/webcam/images/mouse/frame_0013.jpg 7 187 | domain_adaptation_images/webcam/images/mouse/frame_0014.jpg 7 188 | domain_adaptation_images/webcam/images/mouse/frame_0015.jpg 7 189 | domain_adaptation_images/webcam/images/mouse/frame_0016.jpg 7 190 | domain_adaptation_images/webcam/images/mouse/frame_0017.jpg 7 191 | domain_adaptation_images/webcam/images/mouse/frame_0018.jpg 7 192 | domain_adaptation_images/webcam/images/mouse/frame_0019.jpg 7 193 | domain_adaptation_images/webcam/images/mouse/frame_0020.jpg 7 194 | domain_adaptation_images/webcam/images/mouse/frame_0021.jpg 7 195 | domain_adaptation_images/webcam/images/mouse/frame_0022.jpg 7 196 | domain_adaptation_images/webcam/images/mouse/frame_0023.jpg 7 197 | domain_adaptation_images/webcam/images/mouse/frame_0024.jpg 7 198 | domain_adaptation_images/webcam/images/mouse/frame_0025.jpg 7 199 | domain_adaptation_images/webcam/images/mouse/frame_0026.jpg 7 200 | domain_adaptation_images/webcam/images/mouse/frame_0027.jpg 7 201 | domain_adaptation_images/webcam/images/mouse/frame_0028.jpg 7 202 | domain_adaptation_images/webcam/images/mouse/frame_0029.jpg 7 203 | domain_adaptation_images/webcam/images/mouse/frame_0030.jpg 7 204 | domain_adaptation_images/webcam/images/monitor/frame_0001.jpg 6 205 | domain_adaptation_images/webcam/images/monitor/frame_0002.jpg 6 206 | domain_adaptation_images/webcam/images/monitor/frame_0003.jpg 6 207 | domain_adaptation_images/webcam/images/monitor/frame_0004.jpg 6 208 | domain_adaptation_images/webcam/images/monitor/frame_0005.jpg 6 209 | domain_adaptation_images/webcam/images/monitor/frame_0006.jpg 6 210 | domain_adaptation_images/webcam/images/monitor/frame_0007.jpg 6 211 | domain_adaptation_images/webcam/images/monitor/frame_0008.jpg 6 212 | domain_adaptation_images/webcam/images/monitor/frame_0009.jpg 6 213 | domain_adaptation_images/webcam/images/monitor/frame_0010.jpg 6 214 | domain_adaptation_images/webcam/images/monitor/frame_0011.jpg 6 215 | domain_adaptation_images/webcam/images/monitor/frame_0012.jpg 6 216 | domain_adaptation_images/webcam/images/monitor/frame_0013.jpg 6 217 | domain_adaptation_images/webcam/images/monitor/frame_0014.jpg 6 218 | domain_adaptation_images/webcam/images/monitor/frame_0015.jpg 6 219 | domain_adaptation_images/webcam/images/monitor/frame_0016.jpg 6 220 | domain_adaptation_images/webcam/images/monitor/frame_0017.jpg 6 221 | domain_adaptation_images/webcam/images/monitor/frame_0018.jpg 6 222 | domain_adaptation_images/webcam/images/monitor/frame_0019.jpg 6 223 | domain_adaptation_images/webcam/images/monitor/frame_0020.jpg 6 224 | domain_adaptation_images/webcam/images/monitor/frame_0021.jpg 6 225 | domain_adaptation_images/webcam/images/monitor/frame_0022.jpg 6 226 | domain_adaptation_images/webcam/images/monitor/frame_0023.jpg 6 227 | domain_adaptation_images/webcam/images/monitor/frame_0024.jpg 6 228 | domain_adaptation_images/webcam/images/monitor/frame_0025.jpg 6 229 | domain_adaptation_images/webcam/images/monitor/frame_0026.jpg 6 230 | domain_adaptation_images/webcam/images/monitor/frame_0027.jpg 6 231 | domain_adaptation_images/webcam/images/monitor/frame_0028.jpg 6 232 | domain_adaptation_images/webcam/images/monitor/frame_0029.jpg 6 233 | domain_adaptation_images/webcam/images/monitor/frame_0030.jpg 6 234 | domain_adaptation_images/webcam/images/monitor/frame_0031.jpg 6 235 | domain_adaptation_images/webcam/images/monitor/frame_0032.jpg 6 236 | domain_adaptation_images/webcam/images/monitor/frame_0033.jpg 6 237 | domain_adaptation_images/webcam/images/monitor/frame_0034.jpg 6 238 | domain_adaptation_images/webcam/images/monitor/frame_0035.jpg 6 239 | domain_adaptation_images/webcam/images/monitor/frame_0036.jpg 6 240 | domain_adaptation_images/webcam/images/monitor/frame_0037.jpg 6 241 | domain_adaptation_images/webcam/images/monitor/frame_0038.jpg 6 242 | domain_adaptation_images/webcam/images/monitor/frame_0039.jpg 6 243 | domain_adaptation_images/webcam/images/monitor/frame_0040.jpg 6 244 | domain_adaptation_images/webcam/images/monitor/frame_0041.jpg 6 245 | domain_adaptation_images/webcam/images/monitor/frame_0042.jpg 6 246 | domain_adaptation_images/webcam/images/monitor/frame_0043.jpg 6 247 | domain_adaptation_images/webcam/images/mug/frame_0001.jpg 8 248 | domain_adaptation_images/webcam/images/mug/frame_0002.jpg 8 249 | domain_adaptation_images/webcam/images/mug/frame_0003.jpg 8 250 | domain_adaptation_images/webcam/images/mug/frame_0004.jpg 8 251 | domain_adaptation_images/webcam/images/mug/frame_0005.jpg 8 252 | domain_adaptation_images/webcam/images/mug/frame_0006.jpg 8 253 | domain_adaptation_images/webcam/images/mug/frame_0007.jpg 8 254 | domain_adaptation_images/webcam/images/mug/frame_0008.jpg 8 255 | domain_adaptation_images/webcam/images/mug/frame_0009.jpg 8 256 | domain_adaptation_images/webcam/images/mug/frame_0010.jpg 8 257 | domain_adaptation_images/webcam/images/mug/frame_0011.jpg 8 258 | domain_adaptation_images/webcam/images/mug/frame_0012.jpg 8 259 | domain_adaptation_images/webcam/images/mug/frame_0013.jpg 8 260 | domain_adaptation_images/webcam/images/mug/frame_0014.jpg 8 261 | domain_adaptation_images/webcam/images/mug/frame_0015.jpg 8 262 | domain_adaptation_images/webcam/images/mug/frame_0016.jpg 8 263 | domain_adaptation_images/webcam/images/mug/frame_0017.jpg 8 264 | domain_adaptation_images/webcam/images/mug/frame_0018.jpg 8 265 | domain_adaptation_images/webcam/images/mug/frame_0019.jpg 8 266 | domain_adaptation_images/webcam/images/mug/frame_0020.jpg 8 267 | domain_adaptation_images/webcam/images/mug/frame_0021.jpg 8 268 | domain_adaptation_images/webcam/images/mug/frame_0022.jpg 8 269 | domain_adaptation_images/webcam/images/mug/frame_0023.jpg 8 270 | domain_adaptation_images/webcam/images/mug/frame_0024.jpg 8 271 | domain_adaptation_images/webcam/images/mug/frame_0025.jpg 8 272 | domain_adaptation_images/webcam/images/mug/frame_0026.jpg 8 273 | domain_adaptation_images/webcam/images/mug/frame_0027.jpg 8 274 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0001.jpg 29 275 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0002.jpg 29 276 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0003.jpg 29 277 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0004.jpg 29 278 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0005.jpg 29 279 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0006.jpg 29 280 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0007.jpg 29 281 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0008.jpg 29 282 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0009.jpg 29 283 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0010.jpg 29 284 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0011.jpg 29 285 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0012.jpg 29 286 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0013.jpg 29 287 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0014.jpg 29 288 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0015.jpg 29 289 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0016.jpg 29 290 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0017.jpg 29 291 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0018.jpg 29 292 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0019.jpg 29 293 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0020.jpg 29 294 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0021.jpg 29 295 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0022.jpg 29 296 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0023.jpg 29 297 | domain_adaptation_images/webcam/images/pen/frame_0001.jpg 20 298 | domain_adaptation_images/webcam/images/pen/frame_0002.jpg 20 299 | domain_adaptation_images/webcam/images/pen/frame_0003.jpg 20 300 | domain_adaptation_images/webcam/images/pen/frame_0004.jpg 20 301 | domain_adaptation_images/webcam/images/pen/frame_0005.jpg 20 302 | domain_adaptation_images/webcam/images/pen/frame_0006.jpg 20 303 | domain_adaptation_images/webcam/images/pen/frame_0007.jpg 20 304 | domain_adaptation_images/webcam/images/pen/frame_0008.jpg 20 305 | domain_adaptation_images/webcam/images/pen/frame_0009.jpg 20 306 | domain_adaptation_images/webcam/images/pen/frame_0010.jpg 20 307 | domain_adaptation_images/webcam/images/pen/frame_0011.jpg 20 308 | domain_adaptation_images/webcam/images/pen/frame_0012.jpg 20 309 | domain_adaptation_images/webcam/images/pen/frame_0013.jpg 20 310 | domain_adaptation_images/webcam/images/pen/frame_0014.jpg 20 311 | domain_adaptation_images/webcam/images/pen/frame_0015.jpg 20 312 | domain_adaptation_images/webcam/images/pen/frame_0016.jpg 20 313 | domain_adaptation_images/webcam/images/pen/frame_0017.jpg 20 314 | domain_adaptation_images/webcam/images/pen/frame_0018.jpg 20 315 | domain_adaptation_images/webcam/images/pen/frame_0019.jpg 20 316 | domain_adaptation_images/webcam/images/pen/frame_0020.jpg 20 317 | domain_adaptation_images/webcam/images/pen/frame_0021.jpg 20 318 | domain_adaptation_images/webcam/images/pen/frame_0022.jpg 20 319 | domain_adaptation_images/webcam/images/pen/frame_0023.jpg 20 320 | domain_adaptation_images/webcam/images/pen/frame_0024.jpg 20 321 | domain_adaptation_images/webcam/images/pen/frame_0025.jpg 20 322 | domain_adaptation_images/webcam/images/pen/frame_0026.jpg 20 323 | domain_adaptation_images/webcam/images/pen/frame_0027.jpg 20 324 | domain_adaptation_images/webcam/images/pen/frame_0028.jpg 20 325 | domain_adaptation_images/webcam/images/pen/frame_0029.jpg 20 326 | domain_adaptation_images/webcam/images/pen/frame_0030.jpg 20 327 | domain_adaptation_images/webcam/images/pen/frame_0031.jpg 20 328 | domain_adaptation_images/webcam/images/pen/frame_0032.jpg 20 329 | domain_adaptation_images/webcam/images/bike/frame_0001.jpg 1 330 | domain_adaptation_images/webcam/images/bike/frame_0002.jpg 1 331 | domain_adaptation_images/webcam/images/bike/frame_0003.jpg 1 332 | domain_adaptation_images/webcam/images/bike/frame_0004.jpg 1 333 | domain_adaptation_images/webcam/images/bike/frame_0005.jpg 1 334 | domain_adaptation_images/webcam/images/bike/frame_0006.jpg 1 335 | domain_adaptation_images/webcam/images/bike/frame_0007.jpg 1 336 | domain_adaptation_images/webcam/images/bike/frame_0008.jpg 1 337 | domain_adaptation_images/webcam/images/bike/frame_0009.jpg 1 338 | domain_adaptation_images/webcam/images/bike/frame_0010.jpg 1 339 | domain_adaptation_images/webcam/images/bike/frame_0011.jpg 1 340 | domain_adaptation_images/webcam/images/bike/frame_0012.jpg 1 341 | domain_adaptation_images/webcam/images/bike/frame_0013.jpg 1 342 | domain_adaptation_images/webcam/images/bike/frame_0014.jpg 1 343 | domain_adaptation_images/webcam/images/bike/frame_0015.jpg 1 344 | domain_adaptation_images/webcam/images/bike/frame_0016.jpg 1 345 | domain_adaptation_images/webcam/images/bike/frame_0017.jpg 1 346 | domain_adaptation_images/webcam/images/bike/frame_0018.jpg 1 347 | domain_adaptation_images/webcam/images/bike/frame_0019.jpg 1 348 | domain_adaptation_images/webcam/images/bike/frame_0020.jpg 1 349 | domain_adaptation_images/webcam/images/bike/frame_0021.jpg 1 350 | domain_adaptation_images/webcam/images/punchers/frame_0001.jpg 23 351 | domain_adaptation_images/webcam/images/punchers/frame_0002.jpg 23 352 | domain_adaptation_images/webcam/images/punchers/frame_0003.jpg 23 353 | domain_adaptation_images/webcam/images/punchers/frame_0004.jpg 23 354 | domain_adaptation_images/webcam/images/punchers/frame_0005.jpg 23 355 | domain_adaptation_images/webcam/images/punchers/frame_0006.jpg 23 356 | domain_adaptation_images/webcam/images/punchers/frame_0007.jpg 23 357 | domain_adaptation_images/webcam/images/punchers/frame_0008.jpg 23 358 | domain_adaptation_images/webcam/images/punchers/frame_0009.jpg 23 359 | domain_adaptation_images/webcam/images/punchers/frame_0010.jpg 23 360 | domain_adaptation_images/webcam/images/punchers/frame_0011.jpg 23 361 | domain_adaptation_images/webcam/images/punchers/frame_0012.jpg 23 362 | domain_adaptation_images/webcam/images/punchers/frame_0013.jpg 23 363 | domain_adaptation_images/webcam/images/punchers/frame_0014.jpg 23 364 | domain_adaptation_images/webcam/images/punchers/frame_0015.jpg 23 365 | domain_adaptation_images/webcam/images/punchers/frame_0016.jpg 23 366 | domain_adaptation_images/webcam/images/punchers/frame_0017.jpg 23 367 | domain_adaptation_images/webcam/images/punchers/frame_0018.jpg 23 368 | domain_adaptation_images/webcam/images/punchers/frame_0019.jpg 23 369 | domain_adaptation_images/webcam/images/punchers/frame_0020.jpg 23 370 | domain_adaptation_images/webcam/images/punchers/frame_0021.jpg 23 371 | domain_adaptation_images/webcam/images/punchers/frame_0022.jpg 23 372 | domain_adaptation_images/webcam/images/punchers/frame_0023.jpg 23 373 | domain_adaptation_images/webcam/images/punchers/frame_0024.jpg 23 374 | domain_adaptation_images/webcam/images/punchers/frame_0025.jpg 23 375 | domain_adaptation_images/webcam/images/punchers/frame_0026.jpg 23 376 | domain_adaptation_images/webcam/images/punchers/frame_0027.jpg 23 377 | domain_adaptation_images/webcam/images/back_pack/frame_0001.jpg 0 378 | domain_adaptation_images/webcam/images/back_pack/frame_0002.jpg 0 379 | domain_adaptation_images/webcam/images/back_pack/frame_0003.jpg 0 380 | domain_adaptation_images/webcam/images/back_pack/frame_0004.jpg 0 381 | domain_adaptation_images/webcam/images/back_pack/frame_0005.jpg 0 382 | domain_adaptation_images/webcam/images/back_pack/frame_0006.jpg 0 383 | domain_adaptation_images/webcam/images/back_pack/frame_0007.jpg 0 384 | domain_adaptation_images/webcam/images/back_pack/frame_0008.jpg 0 385 | domain_adaptation_images/webcam/images/back_pack/frame_0009.jpg 0 386 | domain_adaptation_images/webcam/images/back_pack/frame_0010.jpg 0 387 | domain_adaptation_images/webcam/images/back_pack/frame_0011.jpg 0 388 | domain_adaptation_images/webcam/images/back_pack/frame_0012.jpg 0 389 | domain_adaptation_images/webcam/images/back_pack/frame_0013.jpg 0 390 | domain_adaptation_images/webcam/images/back_pack/frame_0014.jpg 0 391 | domain_adaptation_images/webcam/images/back_pack/frame_0015.jpg 0 392 | domain_adaptation_images/webcam/images/back_pack/frame_0016.jpg 0 393 | domain_adaptation_images/webcam/images/back_pack/frame_0017.jpg 0 394 | domain_adaptation_images/webcam/images/back_pack/frame_0018.jpg 0 395 | domain_adaptation_images/webcam/images/back_pack/frame_0019.jpg 0 396 | domain_adaptation_images/webcam/images/back_pack/frame_0020.jpg 0 397 | domain_adaptation_images/webcam/images/back_pack/frame_0021.jpg 0 398 | domain_adaptation_images/webcam/images/back_pack/frame_0022.jpg 0 399 | domain_adaptation_images/webcam/images/back_pack/frame_0023.jpg 0 400 | domain_adaptation_images/webcam/images/back_pack/frame_0024.jpg 0 401 | domain_adaptation_images/webcam/images/back_pack/frame_0025.jpg 0 402 | domain_adaptation_images/webcam/images/back_pack/frame_0026.jpg 0 403 | domain_adaptation_images/webcam/images/back_pack/frame_0027.jpg 0 404 | domain_adaptation_images/webcam/images/back_pack/frame_0028.jpg 0 405 | domain_adaptation_images/webcam/images/back_pack/frame_0029.jpg 0 406 | domain_adaptation_images/webcam/images/desktop_computer/frame_0001.jpg 15 407 | domain_adaptation_images/webcam/images/desktop_computer/frame_0002.jpg 15 408 | domain_adaptation_images/webcam/images/desktop_computer/frame_0003.jpg 15 409 | domain_adaptation_images/webcam/images/desktop_computer/frame_0004.jpg 15 410 | domain_adaptation_images/webcam/images/desktop_computer/frame_0005.jpg 15 411 | domain_adaptation_images/webcam/images/desktop_computer/frame_0006.jpg 15 412 | domain_adaptation_images/webcam/images/desktop_computer/frame_0007.jpg 15 413 | domain_adaptation_images/webcam/images/desktop_computer/frame_0008.jpg 15 414 | domain_adaptation_images/webcam/images/desktop_computer/frame_0009.jpg 15 415 | domain_adaptation_images/webcam/images/desktop_computer/frame_0010.jpg 15 416 | domain_adaptation_images/webcam/images/desktop_computer/frame_0011.jpg 15 417 | domain_adaptation_images/webcam/images/desktop_computer/frame_0012.jpg 15 418 | domain_adaptation_images/webcam/images/desktop_computer/frame_0013.jpg 15 419 | domain_adaptation_images/webcam/images/desktop_computer/frame_0014.jpg 15 420 | domain_adaptation_images/webcam/images/desktop_computer/frame_0015.jpg 15 421 | domain_adaptation_images/webcam/images/desktop_computer/frame_0016.jpg 15 422 | domain_adaptation_images/webcam/images/desktop_computer/frame_0017.jpg 15 423 | domain_adaptation_images/webcam/images/desktop_computer/frame_0018.jpg 15 424 | domain_adaptation_images/webcam/images/desktop_computer/frame_0019.jpg 15 425 | domain_adaptation_images/webcam/images/desktop_computer/frame_0020.jpg 15 426 | domain_adaptation_images/webcam/images/desktop_computer/frame_0021.jpg 15 427 | domain_adaptation_images/webcam/images/speaker/frame_0001.jpg 27 428 | domain_adaptation_images/webcam/images/speaker/frame_0002.jpg 27 429 | domain_adaptation_images/webcam/images/speaker/frame_0003.jpg 27 430 | domain_adaptation_images/webcam/images/speaker/frame_0004.jpg 27 431 | domain_adaptation_images/webcam/images/speaker/frame_0005.jpg 27 432 | domain_adaptation_images/webcam/images/speaker/frame_0006.jpg 27 433 | domain_adaptation_images/webcam/images/speaker/frame_0007.jpg 27 434 | domain_adaptation_images/webcam/images/speaker/frame_0008.jpg 27 435 | domain_adaptation_images/webcam/images/speaker/frame_0009.jpg 27 436 | domain_adaptation_images/webcam/images/speaker/frame_0010.jpg 27 437 | domain_adaptation_images/webcam/images/speaker/frame_0011.jpg 27 438 | domain_adaptation_images/webcam/images/speaker/frame_0012.jpg 27 439 | domain_adaptation_images/webcam/images/speaker/frame_0013.jpg 27 440 | domain_adaptation_images/webcam/images/speaker/frame_0014.jpg 27 441 | domain_adaptation_images/webcam/images/speaker/frame_0015.jpg 27 442 | domain_adaptation_images/webcam/images/speaker/frame_0016.jpg 27 443 | domain_adaptation_images/webcam/images/speaker/frame_0017.jpg 27 444 | domain_adaptation_images/webcam/images/speaker/frame_0018.jpg 27 445 | domain_adaptation_images/webcam/images/speaker/frame_0019.jpg 27 446 | domain_adaptation_images/webcam/images/speaker/frame_0020.jpg 27 447 | domain_adaptation_images/webcam/images/speaker/frame_0021.jpg 27 448 | domain_adaptation_images/webcam/images/speaker/frame_0022.jpg 27 449 | domain_adaptation_images/webcam/images/speaker/frame_0023.jpg 27 450 | domain_adaptation_images/webcam/images/speaker/frame_0024.jpg 27 451 | domain_adaptation_images/webcam/images/speaker/frame_0025.jpg 27 452 | domain_adaptation_images/webcam/images/speaker/frame_0026.jpg 27 453 | domain_adaptation_images/webcam/images/speaker/frame_0027.jpg 27 454 | domain_adaptation_images/webcam/images/speaker/frame_0028.jpg 27 455 | domain_adaptation_images/webcam/images/speaker/frame_0029.jpg 27 456 | domain_adaptation_images/webcam/images/speaker/frame_0030.jpg 27 457 | domain_adaptation_images/webcam/images/mobile_phone/frame_0001.jpg 18 458 | domain_adaptation_images/webcam/images/mobile_phone/frame_0002.jpg 18 459 | domain_adaptation_images/webcam/images/mobile_phone/frame_0003.jpg 18 460 | domain_adaptation_images/webcam/images/mobile_phone/frame_0004.jpg 18 461 | domain_adaptation_images/webcam/images/mobile_phone/frame_0005.jpg 18 462 | domain_adaptation_images/webcam/images/mobile_phone/frame_0006.jpg 18 463 | domain_adaptation_images/webcam/images/mobile_phone/frame_0007.jpg 18 464 | domain_adaptation_images/webcam/images/mobile_phone/frame_0008.jpg 18 465 | domain_adaptation_images/webcam/images/mobile_phone/frame_0009.jpg 18 466 | domain_adaptation_images/webcam/images/mobile_phone/frame_0010.jpg 18 467 | domain_adaptation_images/webcam/images/mobile_phone/frame_0011.jpg 18 468 | domain_adaptation_images/webcam/images/mobile_phone/frame_0012.jpg 18 469 | domain_adaptation_images/webcam/images/mobile_phone/frame_0013.jpg 18 470 | domain_adaptation_images/webcam/images/mobile_phone/frame_0014.jpg 18 471 | domain_adaptation_images/webcam/images/mobile_phone/frame_0015.jpg 18 472 | domain_adaptation_images/webcam/images/mobile_phone/frame_0016.jpg 18 473 | domain_adaptation_images/webcam/images/mobile_phone/frame_0017.jpg 18 474 | domain_adaptation_images/webcam/images/mobile_phone/frame_0018.jpg 18 475 | domain_adaptation_images/webcam/images/mobile_phone/frame_0019.jpg 18 476 | domain_adaptation_images/webcam/images/mobile_phone/frame_0020.jpg 18 477 | domain_adaptation_images/webcam/images/mobile_phone/frame_0021.jpg 18 478 | domain_adaptation_images/webcam/images/mobile_phone/frame_0022.jpg 18 479 | domain_adaptation_images/webcam/images/mobile_phone/frame_0023.jpg 18 480 | domain_adaptation_images/webcam/images/mobile_phone/frame_0024.jpg 18 481 | domain_adaptation_images/webcam/images/mobile_phone/frame_0025.jpg 18 482 | domain_adaptation_images/webcam/images/mobile_phone/frame_0026.jpg 18 483 | domain_adaptation_images/webcam/images/mobile_phone/frame_0027.jpg 18 484 | domain_adaptation_images/webcam/images/mobile_phone/frame_0028.jpg 18 485 | domain_adaptation_images/webcam/images/mobile_phone/frame_0029.jpg 18 486 | domain_adaptation_images/webcam/images/mobile_phone/frame_0030.jpg 18 487 | domain_adaptation_images/webcam/images/paper_notebook/frame_0001.jpg 19 488 | domain_adaptation_images/webcam/images/paper_notebook/frame_0002.jpg 19 489 | domain_adaptation_images/webcam/images/paper_notebook/frame_0003.jpg 19 490 | domain_adaptation_images/webcam/images/paper_notebook/frame_0004.jpg 19 491 | domain_adaptation_images/webcam/images/paper_notebook/frame_0005.jpg 19 492 | domain_adaptation_images/webcam/images/paper_notebook/frame_0006.jpg 19 493 | domain_adaptation_images/webcam/images/paper_notebook/frame_0007.jpg 19 494 | domain_adaptation_images/webcam/images/paper_notebook/frame_0008.jpg 19 495 | domain_adaptation_images/webcam/images/paper_notebook/frame_0009.jpg 19 496 | domain_adaptation_images/webcam/images/paper_notebook/frame_0010.jpg 19 497 | domain_adaptation_images/webcam/images/paper_notebook/frame_0011.jpg 19 498 | domain_adaptation_images/webcam/images/paper_notebook/frame_0012.jpg 19 499 | domain_adaptation_images/webcam/images/paper_notebook/frame_0013.jpg 19 500 | domain_adaptation_images/webcam/images/paper_notebook/frame_0014.jpg 19 501 | domain_adaptation_images/webcam/images/paper_notebook/frame_0015.jpg 19 502 | domain_adaptation_images/webcam/images/paper_notebook/frame_0016.jpg 19 503 | domain_adaptation_images/webcam/images/paper_notebook/frame_0017.jpg 19 504 | domain_adaptation_images/webcam/images/paper_notebook/frame_0018.jpg 19 505 | domain_adaptation_images/webcam/images/paper_notebook/frame_0019.jpg 19 506 | domain_adaptation_images/webcam/images/paper_notebook/frame_0020.jpg 19 507 | domain_adaptation_images/webcam/images/paper_notebook/frame_0021.jpg 19 508 | domain_adaptation_images/webcam/images/paper_notebook/frame_0022.jpg 19 509 | domain_adaptation_images/webcam/images/paper_notebook/frame_0023.jpg 19 510 | domain_adaptation_images/webcam/images/paper_notebook/frame_0024.jpg 19 511 | domain_adaptation_images/webcam/images/paper_notebook/frame_0025.jpg 19 512 | domain_adaptation_images/webcam/images/paper_notebook/frame_0026.jpg 19 513 | domain_adaptation_images/webcam/images/paper_notebook/frame_0027.jpg 19 514 | domain_adaptation_images/webcam/images/paper_notebook/frame_0028.jpg 19 515 | domain_adaptation_images/webcam/images/ruler/frame_0001.jpg 25 516 | domain_adaptation_images/webcam/images/ruler/frame_0002.jpg 25 517 | domain_adaptation_images/webcam/images/ruler/frame_0003.jpg 25 518 | domain_adaptation_images/webcam/images/ruler/frame_0004.jpg 25 519 | domain_adaptation_images/webcam/images/ruler/frame_0005.jpg 25 520 | domain_adaptation_images/webcam/images/ruler/frame_0006.jpg 25 521 | domain_adaptation_images/webcam/images/ruler/frame_0007.jpg 25 522 | domain_adaptation_images/webcam/images/ruler/frame_0008.jpg 25 523 | domain_adaptation_images/webcam/images/ruler/frame_0009.jpg 25 524 | domain_adaptation_images/webcam/images/ruler/frame_0010.jpg 25 525 | domain_adaptation_images/webcam/images/ruler/frame_0011.jpg 25 526 | domain_adaptation_images/webcam/images/letter_tray/frame_0001.jpg 17 527 | domain_adaptation_images/webcam/images/letter_tray/frame_0002.jpg 17 528 | domain_adaptation_images/webcam/images/letter_tray/frame_0003.jpg 17 529 | domain_adaptation_images/webcam/images/letter_tray/frame_0004.jpg 17 530 | domain_adaptation_images/webcam/images/letter_tray/frame_0005.jpg 17 531 | domain_adaptation_images/webcam/images/letter_tray/frame_0006.jpg 17 532 | domain_adaptation_images/webcam/images/letter_tray/frame_0007.jpg 17 533 | domain_adaptation_images/webcam/images/letter_tray/frame_0008.jpg 17 534 | domain_adaptation_images/webcam/images/letter_tray/frame_0009.jpg 17 535 | domain_adaptation_images/webcam/images/letter_tray/frame_0010.jpg 17 536 | domain_adaptation_images/webcam/images/letter_tray/frame_0011.jpg 17 537 | domain_adaptation_images/webcam/images/letter_tray/frame_0012.jpg 17 538 | domain_adaptation_images/webcam/images/letter_tray/frame_0013.jpg 17 539 | domain_adaptation_images/webcam/images/letter_tray/frame_0014.jpg 17 540 | domain_adaptation_images/webcam/images/letter_tray/frame_0015.jpg 17 541 | domain_adaptation_images/webcam/images/letter_tray/frame_0016.jpg 17 542 | domain_adaptation_images/webcam/images/letter_tray/frame_0017.jpg 17 543 | domain_adaptation_images/webcam/images/letter_tray/frame_0018.jpg 17 544 | domain_adaptation_images/webcam/images/letter_tray/frame_0019.jpg 17 545 | domain_adaptation_images/webcam/images/file_cabinet/frame_0001.jpg 16 546 | domain_adaptation_images/webcam/images/file_cabinet/frame_0002.jpg 16 547 | domain_adaptation_images/webcam/images/file_cabinet/frame_0003.jpg 16 548 | domain_adaptation_images/webcam/images/file_cabinet/frame_0004.jpg 16 549 | domain_adaptation_images/webcam/images/file_cabinet/frame_0005.jpg 16 550 | domain_adaptation_images/webcam/images/file_cabinet/frame_0006.jpg 16 551 | domain_adaptation_images/webcam/images/file_cabinet/frame_0007.jpg 16 552 | domain_adaptation_images/webcam/images/file_cabinet/frame_0008.jpg 16 553 | domain_adaptation_images/webcam/images/file_cabinet/frame_0009.jpg 16 554 | domain_adaptation_images/webcam/images/file_cabinet/frame_0010.jpg 16 555 | domain_adaptation_images/webcam/images/file_cabinet/frame_0011.jpg 16 556 | domain_adaptation_images/webcam/images/file_cabinet/frame_0012.jpg 16 557 | domain_adaptation_images/webcam/images/file_cabinet/frame_0013.jpg 16 558 | domain_adaptation_images/webcam/images/file_cabinet/frame_0014.jpg 16 559 | domain_adaptation_images/webcam/images/file_cabinet/frame_0015.jpg 16 560 | domain_adaptation_images/webcam/images/file_cabinet/frame_0016.jpg 16 561 | domain_adaptation_images/webcam/images/file_cabinet/frame_0017.jpg 16 562 | domain_adaptation_images/webcam/images/file_cabinet/frame_0018.jpg 16 563 | domain_adaptation_images/webcam/images/file_cabinet/frame_0019.jpg 16 564 | domain_adaptation_images/webcam/images/phone/frame_0001.jpg 21 565 | domain_adaptation_images/webcam/images/phone/frame_0002.jpg 21 566 | domain_adaptation_images/webcam/images/phone/frame_0003.jpg 21 567 | domain_adaptation_images/webcam/images/phone/frame_0004.jpg 21 568 | domain_adaptation_images/webcam/images/phone/frame_0005.jpg 21 569 | domain_adaptation_images/webcam/images/phone/frame_0006.jpg 21 570 | domain_adaptation_images/webcam/images/phone/frame_0007.jpg 21 571 | domain_adaptation_images/webcam/images/phone/frame_0008.jpg 21 572 | domain_adaptation_images/webcam/images/phone/frame_0009.jpg 21 573 | domain_adaptation_images/webcam/images/phone/frame_0010.jpg 21 574 | domain_adaptation_images/webcam/images/phone/frame_0011.jpg 21 575 | domain_adaptation_images/webcam/images/phone/frame_0012.jpg 21 576 | domain_adaptation_images/webcam/images/phone/frame_0013.jpg 21 577 | domain_adaptation_images/webcam/images/phone/frame_0014.jpg 21 578 | domain_adaptation_images/webcam/images/phone/frame_0015.jpg 21 579 | domain_adaptation_images/webcam/images/phone/frame_0016.jpg 21 580 | domain_adaptation_images/webcam/images/bookcase/frame_0001.jpg 11 581 | domain_adaptation_images/webcam/images/bookcase/frame_0002.jpg 11 582 | domain_adaptation_images/webcam/images/bookcase/frame_0003.jpg 11 583 | domain_adaptation_images/webcam/images/bookcase/frame_0004.jpg 11 584 | domain_adaptation_images/webcam/images/bookcase/frame_0005.jpg 11 585 | domain_adaptation_images/webcam/images/bookcase/frame_0006.jpg 11 586 | domain_adaptation_images/webcam/images/bookcase/frame_0007.jpg 11 587 | domain_adaptation_images/webcam/images/bookcase/frame_0008.jpg 11 588 | domain_adaptation_images/webcam/images/bookcase/frame_0009.jpg 11 589 | domain_adaptation_images/webcam/images/bookcase/frame_0010.jpg 11 590 | domain_adaptation_images/webcam/images/bookcase/frame_0011.jpg 11 591 | domain_adaptation_images/webcam/images/bookcase/frame_0012.jpg 11 592 | domain_adaptation_images/webcam/images/projector/frame_0001.jpg 9 593 | domain_adaptation_images/webcam/images/projector/frame_0002.jpg 9 594 | domain_adaptation_images/webcam/images/projector/frame_0003.jpg 9 595 | domain_adaptation_images/webcam/images/projector/frame_0004.jpg 9 596 | domain_adaptation_images/webcam/images/projector/frame_0005.jpg 9 597 | domain_adaptation_images/webcam/images/projector/frame_0006.jpg 9 598 | domain_adaptation_images/webcam/images/projector/frame_0007.jpg 9 599 | domain_adaptation_images/webcam/images/projector/frame_0008.jpg 9 600 | domain_adaptation_images/webcam/images/projector/frame_0009.jpg 9 601 | domain_adaptation_images/webcam/images/projector/frame_0010.jpg 9 602 | domain_adaptation_images/webcam/images/projector/frame_0011.jpg 9 603 | domain_adaptation_images/webcam/images/projector/frame_0012.jpg 9 604 | domain_adaptation_images/webcam/images/projector/frame_0013.jpg 9 605 | domain_adaptation_images/webcam/images/projector/frame_0014.jpg 9 606 | domain_adaptation_images/webcam/images/projector/frame_0015.jpg 9 607 | domain_adaptation_images/webcam/images/projector/frame_0016.jpg 9 608 | domain_adaptation_images/webcam/images/projector/frame_0017.jpg 9 609 | domain_adaptation_images/webcam/images/projector/frame_0018.jpg 9 610 | domain_adaptation_images/webcam/images/projector/frame_0019.jpg 9 611 | domain_adaptation_images/webcam/images/projector/frame_0020.jpg 9 612 | domain_adaptation_images/webcam/images/projector/frame_0021.jpg 9 613 | domain_adaptation_images/webcam/images/projector/frame_0022.jpg 9 614 | domain_adaptation_images/webcam/images/projector/frame_0023.jpg 9 615 | domain_adaptation_images/webcam/images/projector/frame_0024.jpg 9 616 | domain_adaptation_images/webcam/images/projector/frame_0025.jpg 9 617 | domain_adaptation_images/webcam/images/projector/frame_0026.jpg 9 618 | domain_adaptation_images/webcam/images/projector/frame_0027.jpg 9 619 | domain_adaptation_images/webcam/images/projector/frame_0028.jpg 9 620 | domain_adaptation_images/webcam/images/projector/frame_0029.jpg 9 621 | domain_adaptation_images/webcam/images/projector/frame_0030.jpg 9 622 | domain_adaptation_images/webcam/images/stapler/frame_0001.jpg 28 623 | domain_adaptation_images/webcam/images/stapler/frame_0002.jpg 28 624 | domain_adaptation_images/webcam/images/stapler/frame_0003.jpg 28 625 | domain_adaptation_images/webcam/images/stapler/frame_0004.jpg 28 626 | domain_adaptation_images/webcam/images/stapler/frame_0005.jpg 28 627 | domain_adaptation_images/webcam/images/stapler/frame_0006.jpg 28 628 | domain_adaptation_images/webcam/images/stapler/frame_0007.jpg 28 629 | domain_adaptation_images/webcam/images/stapler/frame_0008.jpg 28 630 | domain_adaptation_images/webcam/images/stapler/frame_0009.jpg 28 631 | domain_adaptation_images/webcam/images/stapler/frame_0010.jpg 28 632 | domain_adaptation_images/webcam/images/stapler/frame_0011.jpg 28 633 | domain_adaptation_images/webcam/images/stapler/frame_0012.jpg 28 634 | domain_adaptation_images/webcam/images/stapler/frame_0013.jpg 28 635 | domain_adaptation_images/webcam/images/stapler/frame_0014.jpg 28 636 | domain_adaptation_images/webcam/images/stapler/frame_0015.jpg 28 637 | domain_adaptation_images/webcam/images/stapler/frame_0016.jpg 28 638 | domain_adaptation_images/webcam/images/stapler/frame_0017.jpg 28 639 | domain_adaptation_images/webcam/images/stapler/frame_0018.jpg 28 640 | domain_adaptation_images/webcam/images/stapler/frame_0019.jpg 28 641 | domain_adaptation_images/webcam/images/stapler/frame_0020.jpg 28 642 | domain_adaptation_images/webcam/images/stapler/frame_0021.jpg 28 643 | domain_adaptation_images/webcam/images/stapler/frame_0022.jpg 28 644 | domain_adaptation_images/webcam/images/stapler/frame_0023.jpg 28 645 | domain_adaptation_images/webcam/images/stapler/frame_0024.jpg 28 646 | domain_adaptation_images/webcam/images/trash_can/frame_0001.jpg 30 647 | domain_adaptation_images/webcam/images/trash_can/frame_0002.jpg 30 648 | domain_adaptation_images/webcam/images/trash_can/frame_0003.jpg 30 649 | domain_adaptation_images/webcam/images/trash_can/frame_0004.jpg 30 650 | domain_adaptation_images/webcam/images/trash_can/frame_0005.jpg 30 651 | domain_adaptation_images/webcam/images/trash_can/frame_0006.jpg 30 652 | domain_adaptation_images/webcam/images/trash_can/frame_0007.jpg 30 653 | domain_adaptation_images/webcam/images/trash_can/frame_0008.jpg 30 654 | domain_adaptation_images/webcam/images/trash_can/frame_0009.jpg 30 655 | domain_adaptation_images/webcam/images/trash_can/frame_0010.jpg 30 656 | domain_adaptation_images/webcam/images/trash_can/frame_0011.jpg 30 657 | domain_adaptation_images/webcam/images/trash_can/frame_0012.jpg 30 658 | domain_adaptation_images/webcam/images/trash_can/frame_0013.jpg 30 659 | domain_adaptation_images/webcam/images/trash_can/frame_0014.jpg 30 660 | domain_adaptation_images/webcam/images/trash_can/frame_0015.jpg 30 661 | domain_adaptation_images/webcam/images/trash_can/frame_0016.jpg 30 662 | domain_adaptation_images/webcam/images/trash_can/frame_0017.jpg 30 663 | domain_adaptation_images/webcam/images/trash_can/frame_0018.jpg 30 664 | domain_adaptation_images/webcam/images/trash_can/frame_0019.jpg 30 665 | domain_adaptation_images/webcam/images/trash_can/frame_0020.jpg 30 666 | domain_adaptation_images/webcam/images/trash_can/frame_0021.jpg 30 667 | domain_adaptation_images/webcam/images/bike_helmet/frame_0001.jpg 10 668 | domain_adaptation_images/webcam/images/bike_helmet/frame_0002.jpg 10 669 | domain_adaptation_images/webcam/images/bike_helmet/frame_0003.jpg 10 670 | domain_adaptation_images/webcam/images/bike_helmet/frame_0004.jpg 10 671 | domain_adaptation_images/webcam/images/bike_helmet/frame_0005.jpg 10 672 | domain_adaptation_images/webcam/images/bike_helmet/frame_0006.jpg 10 673 | domain_adaptation_images/webcam/images/bike_helmet/frame_0007.jpg 10 674 | domain_adaptation_images/webcam/images/bike_helmet/frame_0008.jpg 10 675 | domain_adaptation_images/webcam/images/bike_helmet/frame_0009.jpg 10 676 | domain_adaptation_images/webcam/images/bike_helmet/frame_0010.jpg 10 677 | domain_adaptation_images/webcam/images/bike_helmet/frame_0011.jpg 10 678 | domain_adaptation_images/webcam/images/bike_helmet/frame_0012.jpg 10 679 | domain_adaptation_images/webcam/images/bike_helmet/frame_0013.jpg 10 680 | domain_adaptation_images/webcam/images/bike_helmet/frame_0014.jpg 10 681 | domain_adaptation_images/webcam/images/bike_helmet/frame_0015.jpg 10 682 | domain_adaptation_images/webcam/images/bike_helmet/frame_0016.jpg 10 683 | domain_adaptation_images/webcam/images/bike_helmet/frame_0017.jpg 10 684 | domain_adaptation_images/webcam/images/bike_helmet/frame_0018.jpg 10 685 | domain_adaptation_images/webcam/images/bike_helmet/frame_0019.jpg 10 686 | domain_adaptation_images/webcam/images/bike_helmet/frame_0020.jpg 10 687 | domain_adaptation_images/webcam/images/bike_helmet/frame_0021.jpg 10 688 | domain_adaptation_images/webcam/images/bike_helmet/frame_0022.jpg 10 689 | domain_adaptation_images/webcam/images/bike_helmet/frame_0023.jpg 10 690 | domain_adaptation_images/webcam/images/bike_helmet/frame_0024.jpg 10 691 | domain_adaptation_images/webcam/images/bike_helmet/frame_0025.jpg 10 692 | domain_adaptation_images/webcam/images/bike_helmet/frame_0026.jpg 10 693 | domain_adaptation_images/webcam/images/bike_helmet/frame_0027.jpg 10 694 | domain_adaptation_images/webcam/images/bike_helmet/frame_0028.jpg 10 695 | domain_adaptation_images/webcam/images/headphones/frame_0001.jpg 3 696 | domain_adaptation_images/webcam/images/headphones/frame_0002.jpg 3 697 | domain_adaptation_images/webcam/images/headphones/frame_0003.jpg 3 698 | domain_adaptation_images/webcam/images/headphones/frame_0004.jpg 3 699 | domain_adaptation_images/webcam/images/headphones/frame_0005.jpg 3 700 | domain_adaptation_images/webcam/images/headphones/frame_0006.jpg 3 701 | domain_adaptation_images/webcam/images/headphones/frame_0007.jpg 3 702 | domain_adaptation_images/webcam/images/headphones/frame_0008.jpg 3 703 | domain_adaptation_images/webcam/images/headphones/frame_0009.jpg 3 704 | domain_adaptation_images/webcam/images/headphones/frame_0010.jpg 3 705 | domain_adaptation_images/webcam/images/headphones/frame_0011.jpg 3 706 | domain_adaptation_images/webcam/images/headphones/frame_0012.jpg 3 707 | domain_adaptation_images/webcam/images/headphones/frame_0013.jpg 3 708 | domain_adaptation_images/webcam/images/headphones/frame_0014.jpg 3 709 | domain_adaptation_images/webcam/images/headphones/frame_0015.jpg 3 710 | domain_adaptation_images/webcam/images/headphones/frame_0016.jpg 3 711 | domain_adaptation_images/webcam/images/headphones/frame_0017.jpg 3 712 | domain_adaptation_images/webcam/images/headphones/frame_0018.jpg 3 713 | domain_adaptation_images/webcam/images/headphones/frame_0019.jpg 3 714 | domain_adaptation_images/webcam/images/headphones/frame_0020.jpg 3 715 | domain_adaptation_images/webcam/images/headphones/frame_0021.jpg 3 716 | domain_adaptation_images/webcam/images/headphones/frame_0022.jpg 3 717 | domain_adaptation_images/webcam/images/headphones/frame_0023.jpg 3 718 | domain_adaptation_images/webcam/images/headphones/frame_0024.jpg 3 719 | domain_adaptation_images/webcam/images/headphones/frame_0025.jpg 3 720 | domain_adaptation_images/webcam/images/headphones/frame_0026.jpg 3 721 | domain_adaptation_images/webcam/images/headphones/frame_0027.jpg 3 722 | domain_adaptation_images/webcam/images/desk_lamp/frame_0001.jpg 14 723 | domain_adaptation_images/webcam/images/desk_lamp/frame_0002.jpg 14 724 | domain_adaptation_images/webcam/images/desk_lamp/frame_0003.jpg 14 725 | domain_adaptation_images/webcam/images/desk_lamp/frame_0004.jpg 14 726 | domain_adaptation_images/webcam/images/desk_lamp/frame_0005.jpg 14 727 | domain_adaptation_images/webcam/images/desk_lamp/frame_0006.jpg 14 728 | domain_adaptation_images/webcam/images/desk_lamp/frame_0007.jpg 14 729 | domain_adaptation_images/webcam/images/desk_lamp/frame_0008.jpg 14 730 | domain_adaptation_images/webcam/images/desk_lamp/frame_0009.jpg 14 731 | domain_adaptation_images/webcam/images/desk_lamp/frame_0010.jpg 14 732 | domain_adaptation_images/webcam/images/desk_lamp/frame_0011.jpg 14 733 | domain_adaptation_images/webcam/images/desk_lamp/frame_0012.jpg 14 734 | domain_adaptation_images/webcam/images/desk_lamp/frame_0013.jpg 14 735 | domain_adaptation_images/webcam/images/desk_lamp/frame_0014.jpg 14 736 | domain_adaptation_images/webcam/images/desk_lamp/frame_0015.jpg 14 737 | domain_adaptation_images/webcam/images/desk_lamp/frame_0016.jpg 14 738 | domain_adaptation_images/webcam/images/desk_lamp/frame_0017.jpg 14 739 | domain_adaptation_images/webcam/images/desk_lamp/frame_0018.jpg 14 740 | domain_adaptation_images/webcam/images/desk_chair/frame_0001.jpg 13 741 | domain_adaptation_images/webcam/images/desk_chair/frame_0002.jpg 13 742 | domain_adaptation_images/webcam/images/desk_chair/frame_0003.jpg 13 743 | domain_adaptation_images/webcam/images/desk_chair/frame_0004.jpg 13 744 | domain_adaptation_images/webcam/images/desk_chair/frame_0005.jpg 13 745 | domain_adaptation_images/webcam/images/desk_chair/frame_0006.jpg 13 746 | domain_adaptation_images/webcam/images/desk_chair/frame_0007.jpg 13 747 | domain_adaptation_images/webcam/images/desk_chair/frame_0008.jpg 13 748 | domain_adaptation_images/webcam/images/desk_chair/frame_0009.jpg 13 749 | domain_adaptation_images/webcam/images/desk_chair/frame_0010.jpg 13 750 | domain_adaptation_images/webcam/images/desk_chair/frame_0011.jpg 13 751 | domain_adaptation_images/webcam/images/desk_chair/frame_0012.jpg 13 752 | domain_adaptation_images/webcam/images/desk_chair/frame_0013.jpg 13 753 | domain_adaptation_images/webcam/images/desk_chair/frame_0014.jpg 13 754 | domain_adaptation_images/webcam/images/desk_chair/frame_0015.jpg 13 755 | domain_adaptation_images/webcam/images/desk_chair/frame_0016.jpg 13 756 | domain_adaptation_images/webcam/images/desk_chair/frame_0017.jpg 13 757 | domain_adaptation_images/webcam/images/desk_chair/frame_0018.jpg 13 758 | domain_adaptation_images/webcam/images/desk_chair/frame_0019.jpg 13 759 | domain_adaptation_images/webcam/images/desk_chair/frame_0020.jpg 13 760 | domain_adaptation_images/webcam/images/desk_chair/frame_0021.jpg 13 761 | domain_adaptation_images/webcam/images/desk_chair/frame_0022.jpg 13 762 | domain_adaptation_images/webcam/images/desk_chair/frame_0023.jpg 13 763 | domain_adaptation_images/webcam/images/desk_chair/frame_0024.jpg 13 764 | domain_adaptation_images/webcam/images/desk_chair/frame_0025.jpg 13 765 | domain_adaptation_images/webcam/images/desk_chair/frame_0026.jpg 13 766 | domain_adaptation_images/webcam/images/desk_chair/frame_0027.jpg 13 767 | domain_adaptation_images/webcam/images/desk_chair/frame_0028.jpg 13 768 | domain_adaptation_images/webcam/images/desk_chair/frame_0029.jpg 13 769 | domain_adaptation_images/webcam/images/desk_chair/frame_0030.jpg 13 770 | domain_adaptation_images/webcam/images/desk_chair/frame_0031.jpg 13 771 | domain_adaptation_images/webcam/images/desk_chair/frame_0032.jpg 13 772 | domain_adaptation_images/webcam/images/desk_chair/frame_0033.jpg 13 773 | domain_adaptation_images/webcam/images/desk_chair/frame_0034.jpg 13 774 | domain_adaptation_images/webcam/images/desk_chair/frame_0035.jpg 13 775 | domain_adaptation_images/webcam/images/desk_chair/frame_0036.jpg 13 776 | domain_adaptation_images/webcam/images/desk_chair/frame_0037.jpg 13 777 | domain_adaptation_images/webcam/images/desk_chair/frame_0038.jpg 13 778 | domain_adaptation_images/webcam/images/desk_chair/frame_0039.jpg 13 779 | domain_adaptation_images/webcam/images/desk_chair/frame_0040.jpg 13 780 | domain_adaptation_images/webcam/images/bottle/frame_0001.jpg 12 781 | domain_adaptation_images/webcam/images/bottle/frame_0002.jpg 12 782 | domain_adaptation_images/webcam/images/bottle/frame_0003.jpg 12 783 | domain_adaptation_images/webcam/images/bottle/frame_0004.jpg 12 784 | domain_adaptation_images/webcam/images/bottle/frame_0005.jpg 12 785 | domain_adaptation_images/webcam/images/bottle/frame_0006.jpg 12 786 | domain_adaptation_images/webcam/images/bottle/frame_0007.jpg 12 787 | domain_adaptation_images/webcam/images/bottle/frame_0008.jpg 12 788 | domain_adaptation_images/webcam/images/bottle/frame_0009.jpg 12 789 | domain_adaptation_images/webcam/images/bottle/frame_0010.jpg 12 790 | domain_adaptation_images/webcam/images/bottle/frame_0011.jpg 12 791 | domain_adaptation_images/webcam/images/bottle/frame_0012.jpg 12 792 | domain_adaptation_images/webcam/images/bottle/frame_0013.jpg 12 793 | domain_adaptation_images/webcam/images/bottle/frame_0014.jpg 12 794 | domain_adaptation_images/webcam/images/bottle/frame_0015.jpg 12 795 | domain_adaptation_images/webcam/images/bottle/frame_0016.jpg 12 796 | -------------------------------------------------------------------------------- /lib.py: -------------------------------------------------------------------------------- 1 | from easydl import * 2 | 3 | 4 | def reverse_sigmoid(y): 5 | return torch.log(y / (1.0 - y + 1e-10) + 1e-10) 6 | 7 | 8 | def get_source_share_weight(domain_out, before_softmax, domain_temperature=1.0, class_temperature=10.0): 9 | before_softmax = before_softmax / class_temperature 10 | after_softmax = nn.Softmax(-1)(before_softmax) 11 | domain_logit = reverse_sigmoid(domain_out) 12 | domain_logit = domain_logit / domain_temperature 13 | domain_out = nn.Sigmoid()(domain_logit) 14 | 15 | entropy = torch.sum(- after_softmax * torch.log(after_softmax + 1e-10), dim=1, keepdim=True) 16 | entropy_norm = entropy / np.log(after_softmax.size(1)) 17 | weight = entropy_norm - domain_out 18 | weight = weight.detach() 19 | return weight 20 | 21 | 22 | def get_target_share_weight(domain_out, before_softmax, domain_temperature=1.0, class_temperature=10.0): 23 | return - get_source_share_weight(domain_out, before_softmax, domain_temperature, class_temperature) 24 | 25 | 26 | def normalize_weight(x): 27 | min_val = x.min() 28 | max_val = x.max() 29 | x = (x - min_val) / (max_val - min_val) 30 | x = x / torch.mean(x) 31 | return x.detach() 32 | 33 | 34 | def seed_everything(seed=1234): 35 | import random 36 | random.seed(seed) 37 | torch.manual_seed(seed) 38 | torch.cuda.manual_seed_all(seed) 39 | np.random.seed(seed) 40 | import os 41 | os.environ['PYTHONHASHSEED'] = str(seed) -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from data import * 2 | from net import * 3 | from lib import * 4 | import datetime 5 | from tqdm import tqdm 6 | if is_in_notebook(): 7 | from tqdm import tqdm_notebook as tqdm 8 | from torch import optim 9 | from tensorboardX import SummaryWriter 10 | import torch.backends.cudnn as cudnn 11 | cudnn.benchmark = True 12 | cudnn.deterministic = True 13 | 14 | seed_everything() 15 | 16 | if args.misc.gpus < 1: 17 | import os 18 | os.environ["CUDA_VISIBLE_DEVICES"] = "" 19 | gpu_ids = [] 20 | output_device = torch.device('cpu') 21 | else: 22 | gpu_ids = select_GPUs(args.misc.gpus) 23 | output_device = gpu_ids[0] 24 | 25 | now = datetime.datetime.now().strftime('%b%d_%H-%M-%S') 26 | 27 | log_dir = f'{args.log.root_dir}/{now}' 28 | 29 | logger = SummaryWriter(log_dir) 30 | 31 | with open(join(log_dir, 'config.yaml'), 'w') as f: 32 | f.write(yaml.dump(save_config)) 33 | 34 | model_dict = { 35 | 'resnet50': ResNet50Fc, 36 | 'vgg16': VGG16Fc 37 | } 38 | 39 | 40 | class TotalNet(nn.Module): 41 | def __init__(self): 42 | super(TotalNet, self).__init__() 43 | self.feature_extractor = model_dict[args.model.base_model](args.model.pretrained_model) 44 | classifier_output_dim = len(source_classes) 45 | self.classifier = CLS(self.feature_extractor.output_num(), classifier_output_dim, bottle_neck_dim=256) 46 | self.discriminator = AdversarialNetwork(256) 47 | self.discriminator_separate = AdversarialNetwork(256) 48 | 49 | def forward(self, x): 50 | f = self.feature_extractor(x) 51 | f, _, __, y = self.classifier(f) 52 | d = self.discriminator(_) 53 | d_0 = self.discriminator_separate(_) 54 | return y, d, d_0 55 | 56 | 57 | totalNet = TotalNet() 58 | 59 | feature_extractor = nn.DataParallel(totalNet.feature_extractor, device_ids=gpu_ids, output_device=output_device).train(True) 60 | classifier = nn.DataParallel(totalNet.classifier, device_ids=gpu_ids, output_device=output_device).train(True) 61 | discriminator = nn.DataParallel(totalNet.discriminator, device_ids=gpu_ids, output_device=output_device).train(True) 62 | discriminator_separate = nn.DataParallel(totalNet.discriminator_separate, device_ids=gpu_ids, output_device=output_device).train(True) 63 | 64 | if args.test.test_only: 65 | assert os.path.exists(args.test.resume_file) 66 | data = torch.load(open(args.test.resume_file, 'rb')) 67 | feature_extractor.load_state_dict(data['feature_extractor']) 68 | classifier.load_state_dict(data['classifier']) 69 | discriminator.load_state_dict(data['discriminator']) 70 | discriminator_separate.load_state_dict(data['discriminator_separate']) 71 | 72 | counters = [AccuracyCounter() for x in range(len(source_classes) + 1)] 73 | with TrainingModeManager([feature_extractor, classifier, discriminator_separate], train=False) as mgr, \ 74 | Accumulator(['feature', 'predict_prob', 'label', 'domain_prob', 'before_softmax', 75 | 'target_share_weight']) as target_accumulator, \ 76 | torch.no_grad(): 77 | for i, (im, label) in enumerate(tqdm(target_test_dl, desc='testing ')): 78 | im = im.to(output_device) 79 | label = label.to(output_device) 80 | 81 | feature = feature_extractor.forward(im) 82 | feature, __, before_softmax, predict_prob = classifier.forward(feature) 83 | domain_prob = discriminator_separate.forward(__) 84 | 85 | target_share_weight = get_target_share_weight(domain_prob, before_softmax, domain_temperature=1.0, 86 | class_temperature=1.0) 87 | 88 | for name in target_accumulator.names: 89 | globals()[name] = variable_to_numpy(globals()[name]) 90 | 91 | target_accumulator.updateData(globals()) 92 | 93 | for x in target_accumulator: 94 | globals()[x] = target_accumulator[x] 95 | 96 | def outlier(each_target_share_weight): 97 | return each_target_share_weight < args.test.w_0 98 | 99 | counters = [AccuracyCounter() for x in range(len(source_classes) + 1)] 100 | 101 | for (each_predict_prob, each_label, each_target_share_weight) in zip(predict_prob, label, target_share_weight): 102 | if each_label in source_classes: 103 | counters[each_label].Ntotal += 1.0 104 | each_pred_id = np.argmax(each_predict_prob) 105 | if not outlier(each_target_share_weight[0]) and each_pred_id == each_label: 106 | counters[each_label].Ncorrect += 1.0 107 | else: 108 | counters[-1].Ntotal += 1.0 109 | if outlier(each_target_share_weight[0]): 110 | counters[-1].Ncorrect += 1.0 111 | 112 | acc_tests = [x.reportAccuracy() for x in counters if not np.isnan(x.reportAccuracy())] 113 | acc_test = torch.ones(1, 1) * np.mean(acc_tests) 114 | print(f'test accuracy is {acc_test.item()}') 115 | exit(0) 116 | 117 | # ===================optimizer 118 | scheduler = lambda step, initial_lr: inverseDecaySheduler(step, initial_lr, gamma=10, power=0.75, max_iter=10000) 119 | optimizer_finetune = OptimWithSheduler( 120 | optim.SGD(feature_extractor.parameters(), lr=args.train.lr / 10.0, weight_decay=args.train.weight_decay, momentum=args.train.momentum, nesterov=True), 121 | scheduler) 122 | optimizer_cls = OptimWithSheduler( 123 | optim.SGD(classifier.parameters(), lr=args.train.lr, weight_decay=args.train.weight_decay, momentum=args.train.momentum, nesterov=True), 124 | scheduler) 125 | optimizer_discriminator = OptimWithSheduler( 126 | optim.SGD(discriminator.parameters(), lr=args.train.lr, weight_decay=args.train.weight_decay, momentum=args.train.momentum, nesterov=True), 127 | scheduler) 128 | optimizer_discriminator_separate = OptimWithSheduler( 129 | optim.SGD(discriminator_separate.parameters(), lr=args.train.lr, weight_decay=args.train.weight_decay, momentum=args.train.momentum, nesterov=True), 130 | scheduler) 131 | 132 | global_step = 0 133 | best_acc = 0 134 | 135 | total_steps = tqdm(range(args.train.min_step),desc='global step') 136 | epoch_id = 0 137 | 138 | while global_step < args.train.min_step: 139 | 140 | iters = tqdm(zip(source_train_dl, target_train_dl), desc=f'epoch {epoch_id} ', total=min(len(source_train_dl), len(target_train_dl))) 141 | epoch_id += 1 142 | 143 | for i, ((im_source, label_source), (im_target, label_target)) in enumerate(iters): 144 | 145 | save_label_target = label_target # for debug usage 146 | 147 | label_source = label_source.to(output_device) 148 | label_target = label_target.to(output_device) 149 | label_target = torch.zeros_like(label_target) 150 | 151 | # =========================forward pass 152 | im_source = im_source.to(output_device) 153 | im_target = im_target.to(output_device) 154 | 155 | fc1_s = feature_extractor.forward(im_source) 156 | fc1_t = feature_extractor.forward(im_target) 157 | 158 | fc1_s, feature_source, fc2_s, predict_prob_source = classifier.forward(fc1_s) 159 | fc1_t, feature_target, fc2_t, predict_prob_target = classifier.forward(fc1_t) 160 | 161 | domain_prob_discriminator_source = discriminator.forward(feature_source) 162 | domain_prob_discriminator_target = discriminator.forward(feature_target) 163 | 164 | domain_prob_discriminator_source_separate = discriminator_separate.forward(feature_source.detach()) 165 | domain_prob_discriminator_target_separate = discriminator_separate.forward(feature_target.detach()) 166 | 167 | source_share_weight = get_source_share_weight(domain_prob_discriminator_source_separate, fc2_s, domain_temperature=1.0, class_temperature=10.0) 168 | source_share_weight = normalize_weight(source_share_weight) 169 | target_share_weight = get_target_share_weight(domain_prob_discriminator_target_separate, fc2_t, domain_temperature=1.0, class_temperature=1.0) 170 | target_share_weight = normalize_weight(target_share_weight) 171 | 172 | # ==============================compute loss 173 | adv_loss = torch.zeros(1, 1).to(output_device) 174 | adv_loss_separate = torch.zeros(1, 1).to(output_device) 175 | 176 | tmp = source_share_weight * nn.BCELoss(reduction='none')(domain_prob_discriminator_source, torch.ones_like(domain_prob_discriminator_source)) 177 | adv_loss += torch.mean(tmp, dim=0, keepdim=True) 178 | tmp = target_share_weight * nn.BCELoss(reduction='none')(domain_prob_discriminator_target, torch.zeros_like(domain_prob_discriminator_target)) 179 | adv_loss += torch.mean(tmp, dim=0, keepdim=True) 180 | 181 | adv_loss_separate += nn.BCELoss()(domain_prob_discriminator_source_separate, torch.ones_like(domain_prob_discriminator_source_separate)) 182 | adv_loss_separate += nn.BCELoss()(domain_prob_discriminator_target_separate, torch.zeros_like(domain_prob_discriminator_target_separate)) 183 | 184 | # ============================== cross entropy loss 185 | ce = nn.CrossEntropyLoss(reduction='none')(predict_prob_source, label_source) 186 | ce = torch.mean(ce, dim=0, keepdim=True) 187 | 188 | with OptimizerManager( 189 | [optimizer_finetune, optimizer_cls, optimizer_discriminator, optimizer_discriminator_separate]): 190 | loss = ce + adv_loss + adv_loss_separate 191 | loss.backward() 192 | 193 | global_step += 1 194 | total_steps.update() 195 | 196 | if global_step % args.log.log_interval == 0: 197 | counter = AccuracyCounter() 198 | counter.addOneBatch(variable_to_numpy(one_hot(label_source, len(source_classes))), variable_to_numpy(predict_prob_source)) 199 | acc_train = torch.tensor([counter.reportAccuracy()]).to(output_device) 200 | logger.add_scalar('adv_loss', adv_loss, global_step) 201 | logger.add_scalar('ce', ce, global_step) 202 | logger.add_scalar('adv_loss_separate', adv_loss_separate, global_step) 203 | logger.add_scalar('acc_train', acc_train, global_step) 204 | 205 | if global_step % args.test.test_interval == 0: 206 | 207 | counters = [AccuracyCounter() for x in range(len(source_classes) + 1)] 208 | with TrainingModeManager([feature_extractor, classifier, discriminator_separate], train=False) as mgr, \ 209 | Accumulator(['feature', 'predict_prob', 'label', 'domain_prob', 'before_softmax', 'target_share_weight']) as target_accumulator, \ 210 | torch.no_grad(): 211 | 212 | for i, (im, label) in enumerate(tqdm(target_test_dl, desc='testing ')): 213 | im = im.to(output_device) 214 | label = label.to(output_device) 215 | 216 | feature = feature_extractor.forward(im) 217 | feature, __, before_softmax, predict_prob = classifier.forward(feature) 218 | domain_prob = discriminator_separate.forward(__) 219 | 220 | target_share_weight = get_target_share_weight(domain_prob, before_softmax, domain_temperature=1.0, 221 | class_temperature=1.0) 222 | 223 | for name in target_accumulator.names: 224 | globals()[name] = variable_to_numpy(globals()[name]) 225 | 226 | target_accumulator.updateData(globals()) 227 | 228 | for x in target_accumulator: 229 | globals()[x] = target_accumulator[x] 230 | 231 | def outlier(each_target_share_weight): 232 | return each_target_share_weight < args.test.w_0 233 | 234 | counters = [AccuracyCounter() for x in range(len(source_classes) + 1)] 235 | 236 | for (each_predict_prob, each_label, each_target_share_weight) in zip(predict_prob, label, 237 | target_share_weight): 238 | if each_label in source_classes: 239 | counters[each_label].Ntotal += 1.0 240 | each_pred_id = np.argmax(each_predict_prob) 241 | if not outlier(each_target_share_weight[0]) and each_pred_id == each_label: 242 | counters[each_label].Ncorrect += 1.0 243 | else: 244 | counters[-1].Ntotal += 1.0 245 | if outlier(each_target_share_weight[0]): 246 | counters[-1].Ncorrect += 1.0 247 | 248 | acc_tests = [x.reportAccuracy() for x in counters if not np.isnan(x.reportAccuracy())] 249 | acc_test = torch.ones(1, 1) * np.mean(acc_tests) 250 | 251 | logger.add_scalar('acc_test', acc_test, global_step) 252 | clear_output() 253 | 254 | data = { 255 | "feature_extractor": feature_extractor.state_dict(), 256 | 'classifier': classifier.state_dict(), 257 | 'discriminator': discriminator.state_dict() if not isinstance(discriminator, Nonsense) else 1.0, 258 | 'discriminator_separate': discriminator_separate.state_dict(), 259 | } 260 | 261 | if acc_test > best_acc: 262 | best_acc = acc_test 263 | with open(join(log_dir, 'best.pkl'), 'wb') as f: 264 | torch.save(data, f) 265 | 266 | with open(join(log_dir, 'current.pkl'), 'wb') as f: 267 | torch.save(data, f) -------------------------------------------------------------------------------- /net.py: -------------------------------------------------------------------------------- 1 | from easydl import * 2 | from torchvision import models 3 | 4 | 5 | class BaseFeatureExtractor(nn.Module): 6 | def forward(self, *input): 7 | pass 8 | 9 | def __init__(self): 10 | super(BaseFeatureExtractor, self).__init__() 11 | 12 | def output_num(self): 13 | pass 14 | 15 | def train(self, mode=True): 16 | # freeze BN mean and std 17 | for module in self.children(): 18 | if isinstance(module, nn.BatchNorm2d): 19 | module.train(False) 20 | else: 21 | module.train(mode) 22 | 23 | 24 | class ResNet50Fc(BaseFeatureExtractor): 25 | """ 26 | ** input image should be in range of [0, 1]** 27 | """ 28 | def __init__(self,model_path=None, normalize=True): 29 | super(ResNet50Fc, self).__init__() 30 | if model_path: 31 | if os.path.exists(model_path): 32 | self.model_resnet = models.resnet50(pretrained=False) 33 | self.model_resnet.load_state_dict(torch.load(model_path)) 34 | else: 35 | raise Exception('invalid model path!') 36 | else: 37 | self.model_resnet = models.resnet50(pretrained=True) 38 | 39 | if model_path or normalize: 40 | # pretrain model is used, use ImageNet normalization 41 | self.normalize = True 42 | self.register_buffer('mean', torch.tensor([0.485, 0.456, 0.406]).view(1, 3, 1, 1)) 43 | self.register_buffer('std', torch.tensor([0.229, 0.224, 0.225]).view(1, 3, 1, 1)) 44 | else: 45 | self.normalize = False 46 | 47 | model_resnet = self.model_resnet 48 | self.conv1 = model_resnet.conv1 49 | self.bn1 = model_resnet.bn1 50 | self.relu = model_resnet.relu 51 | self.maxpool = model_resnet.maxpool 52 | self.layer1 = model_resnet.layer1 53 | self.layer2 = model_resnet.layer2 54 | self.layer3 = model_resnet.layer3 55 | self.layer4 = model_resnet.layer4 56 | self.avgpool = model_resnet.avgpool 57 | self.__in_features = model_resnet.fc.in_features 58 | 59 | def forward(self, x): 60 | if self.normalize: 61 | x = (x - self.mean) / self.std 62 | x = self.conv1(x) 63 | x = self.bn1(x) 64 | x = self.relu(x) 65 | x = self.maxpool(x) 66 | x = self.layer1(x) 67 | x = self.layer2(x) 68 | x = self.layer3(x) 69 | x = self.layer4(x) 70 | x = self.avgpool(x) 71 | x = x.view(x.size(0), -1) 72 | return x 73 | 74 | def output_num(self): 75 | return self.__in_features 76 | 77 | 78 | class VGG16Fc(BaseFeatureExtractor): 79 | def __init__(self,model_path=None, normalize=True): 80 | super(VGG16Fc, self).__init__() 81 | if model_path: 82 | if os.path.exists(model_path): 83 | self.model_vgg = models.vgg16(pretrained=False) 84 | self.model_vgg.load_state_dict(torch.load(model_path)) 85 | else: 86 | raise Exception('invalid model path!') 87 | else: 88 | self.model_vgg = models.vgg16(pretrained=True) 89 | 90 | if model_path or normalize: 91 | # pretrain model is used, use ImageNet normalization 92 | self.normalize = True 93 | self.register_buffer('mean', torch.tensor([0.485, 0.456, 0.406]).view(1, 3, 1, 1)) 94 | self.register_buffer('std', torch.tensor([0.229, 0.224, 0.225]).view(1, 3, 1, 1)) 95 | else: 96 | self.normalize = False 97 | 98 | model_vgg = self.model_vgg 99 | self.features = model_vgg.features 100 | self.classifier = nn.Sequential() 101 | for i in range(6): 102 | self.classifier.add_module("classifier"+str(i), model_vgg.classifier[i]) 103 | self.feature_layers = nn.Sequential(self.features, self.classifier) 104 | 105 | self.__in_features = 4096 106 | 107 | def forward(self, x): 108 | if self.normalize: 109 | x = (x - self.mean) / self.std 110 | x = self.features(x) 111 | x = x.view(x.size(0), 25088) 112 | x = self.classifier(x) 113 | return x 114 | 115 | def output_num(self): 116 | return self.__in_features 117 | 118 | 119 | class CLS(nn.Module): 120 | """ 121 | a two-layer MLP for classification 122 | """ 123 | def __init__(self, in_dim, out_dim, bottle_neck_dim=256): 124 | super(CLS, self).__init__() 125 | self.bottleneck = nn.Linear(in_dim, bottle_neck_dim) 126 | self.fc = nn.Linear(bottle_neck_dim, out_dim) 127 | self.main = nn.Sequential(self.bottleneck, self.fc, nn.Softmax(dim=-1)) 128 | 129 | def forward(self, x): 130 | out = [x] 131 | for module in self.main.children(): 132 | x = module(x) 133 | out.append(x) 134 | return out 135 | 136 | 137 | class AdversarialNetwork(nn.Module): 138 | """ 139 | AdversarialNetwork with a gredient reverse layer. 140 | its ``forward`` function calls gredient reverse layer first, then applies ``self.main`` module. 141 | """ 142 | def __init__(self, in_feature): 143 | super(AdversarialNetwork, self).__init__() 144 | self.main = nn.Sequential( 145 | nn.Linear(in_feature, 1024), 146 | nn.ReLU(inplace=True), 147 | nn.Dropout(0.5), 148 | nn.Linear(1024,1024), 149 | nn.ReLU(inplace=True), 150 | nn.Dropout(0.5), 151 | nn.Linear(1024, 1), 152 | nn.Sigmoid() 153 | ) 154 | self.grl = GradientReverseModule(lambda step: aToBSheduler(step, 0.0, 1.0, gamma=10, max_iter=10000)) 155 | 156 | def forward(self, x): 157 | x_ = self.grl(x) 158 | y = self.main(x_) 159 | return y 160 | -------------------------------------------------------------------------------- /office-train-config.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | dataset: 3 | name: office # choices are ['office', 'officehome', 'caltech-imagenet', 'visda2017'] 4 | root_path: data/office # /path/to/dataset/root 5 | source: 0 # source domain index 6 | target: 1 # target domain index 7 | n_share: 10 # number of classes to be shared 8 | n_source_private: 10 # number of classes in source private domain 9 | n_total: 31 # number of classes in total 10 | 11 | dataloader: 12 | class_balance: true # 13 | data_workers: 3 # how many workers to use for train dataloaders 14 | batch_size: 36 # batch_size for source domain and target domain respectively 15 | 16 | model: 17 | base_model: resnet50 # choices=['resnet50', 'vgg16'] 18 | pretrained_model: /workspace/fubo/resnet50.pth # /path/to/pretrained/model 19 | 20 | train: 21 | min_step: 20000 # minimum steps to run. run epochs until it exceeds the minStep 22 | lr: 0.001 # learning rate for new layers. learning rate for finetune is 1/10 of lr 23 | weight_decay: 0.0005 24 | momentum: 0.9 25 | 26 | test: 27 | test_interval: 500 # interval of two continuous test phase 28 | test_only: False # test a given model and exit 29 | resume_file: '' # model to test 30 | w_0: -0.5 # hyper-parameter w_0 31 | 32 | misc: 33 | gpus: 1 # how many GPUs to be used, 0 indicates CPU only 34 | 35 | log: 36 | root_dir: log # the log directory (log directory will be {root_dir}/{method}/time/) 37 | log_interval: 10 # steps to log scalars -------------------------------------------------------------------------------- /officehome-test-config.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | dataset: 3 | name: officehome # choices are ['office', 'officehome', 'caltech-imagenet', 'visda2017'] 4 | root_path: /home/youkaichao/data/Office_Home # /path/to/dataset/root 5 | source: 0 # source domain index 6 | target: 1 # target domain index 7 | n_share: 10 # number of classes to be shared 8 | n_source_private: 5 # number of classes in source private domain 9 | n_total: 65 # number of classes in total 10 | 11 | dataloader: 12 | class_balance: true # 13 | data_workers: 3 # how many workers to use for train dataloaders 14 | batch_size: 36 # batch_size for source domain and target domain respectively 15 | 16 | model: 17 | base_model: resnet50 # choices=['resnet50', 'vgg16'] 18 | pretrained_model: /home/youkaichao/data/pytorchModels/resnet50.pth # /path/to/pretrained/model 19 | 20 | train: 21 | min_step: 40000 # minimum steps to run. run epochs until it exceeds the minStep 22 | lr: 0.01 # learning rate for new layers. learning rate for finetune is 1/10 of lr 23 | weight_decay: 0.0005 24 | momentum: 0.9 25 | 26 | test: 27 | test_interval: 500 # interval of two continuous test phase 28 | test_only: True # test a given model and exit 29 | resume_file: Art_to_Clipart.pkl # model to test 30 | w_0: -0.5 # hyper-parameter w_0 31 | 32 | misc: 33 | gpus: 1 # how many GPUs to be used, 0 indicates CPU only 34 | 35 | log: 36 | root_dir: log # the log directory (log directory will be {root_dir}/{method}/time/) 37 | log_interval: 10 # steps to log scalars -------------------------------------------------------------------------------- /officehome-train-config.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | dataset: 3 | name: officehome # choices are ['office', 'officehome', 'caltech-imagenet', 'visda2017'] 4 | root_path: /home/youkaichao/data/Office_Home # /path/to/dataset/root 5 | source: 0 # source domain index 6 | target: 1 # target domain index 7 | n_share: 10 # number of classes to be shared 8 | n_source_private: 5 # number of classes in source private domain 9 | n_total: 65 # number of classes in total 10 | 11 | dataloader: 12 | class_balance: true # 13 | data_workers: 3 # how many workers to use for train dataloaders 14 | batch_size: 36 # batch_size for source domain and target domain respectively 15 | 16 | model: 17 | base_model: resnet50 # choices=['resnet50', 'vgg16'] 18 | pretrained_model: /home/youkaichao/data/pytorchModels/resnet50.pth # /path/to/pretrained/model 19 | 20 | train: 21 | min_step: 40000 # minimum steps to run. run epochs until it exceeds the minStep 22 | lr: 0.01 # learning rate for new layers. learning rate for finetune is 1/10 of lr 23 | weight_decay: 0.0005 24 | momentum: 0.9 25 | 26 | test: 27 | test_interval: 500 # interval of two continuous test phase 28 | test_only: False # test a given model and exit 29 | resume_file: '' # model to test 30 | w_0: -0.5 # hyper-parameter w_0 31 | 32 | misc: 33 | gpus: 1 # how many GPUs to be used, 0 indicates CPU only 34 | 35 | log: 36 | root_dir: log # the log directory (log directory will be {root_dir}/{method}/time/) 37 | log_interval: 10 # steps to log scalars -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | easydict 2 | easydl 3 | tensorboardX 4 | tqdm -------------------------------------------------------------------------------- /visda-train-config.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | dataset: 3 | name: visda2017 # choices are ['office', 'officehome', 'caltech-imagenet', 'visda2017'] 4 | root_path: data/visda2017 # /path/to/dataset/root 5 | source: 0 # source domain index 6 | target: 1 # target domain index 7 | n_share: 6 # number of classes to be shared 8 | n_source_private: 3 # number of classes in source private domain 9 | n_total: 12 # number of classes in total 10 | 11 | dataloader: 12 | class_balance: true # 13 | data_workers: 3 # how many workers to use for train dataloaders 14 | batch_size: 36 # batch_size for source domain and target domain respectively 15 | 16 | model: 17 | base_model: resnet50 # choices=['resnet50', 'vgg16'] 18 | pretrained_model: /workspace/fubo/resnet50.pth # /path/to/pretrained/model 19 | 20 | train: 21 | min_step: 30000 # minimum steps to run. run epochs until it exceeds the minStep 22 | lr: 0.001 # learning rate for new layers. learning rate for finetune is 1/10 of lr 23 | weight_decay: 0.0005 24 | momentum: 0.9 25 | 26 | test: 27 | test_interval: 500 # interval of two continuous test phase 28 | test_only: False # test a given model and exit 29 | resume_file: '' # model to test 30 | w_0: -0.5 # hyper-parameter w_0 31 | 32 | misc: 33 | gpus: 1 # how many GPUs to be used, 0 indicates CPU only 34 | 35 | log: 36 | root_dir: log # the log directory (log directory will be {root_dir}/{method}/time/) 37 | log_interval: 10 # steps to log scalars --------------------------------------------------------------------------------