-
Notifications
You must be signed in to change notification settings - Fork 1
/
l-448-arc-roundb2.py
269 lines (269 loc) · 8.83 KB
/
l-448-arc-roundb2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
dataset_type = 'ImageNet'
data_preprocessor = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
bgr_mean = [103.53, 116.28, 123.675]
bgr_std = [57.375, 57.12, 58.395]
train_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=dict(
backend='memcached',
server_list_cfg='/mnt/lustre/share/pymc/pcs_server_list.conf',
client_cfg='/mnt/lustre/share/pymc/mc.conf',
sys_path='/mnt/lustre/share/pymc')),
dict(
type='RandomResizedCrop',
scale=448,
backend='pillow',
interpolation='bicubic'),
dict(type='RandomFlip', prob=0.5, direction='horizontal'),
dict(
type='RandAugment',
policies='timm_increasing',
num_policies=2,
total_level=10,
magnitude_level=9,
magnitude_std=0.5,
hparams=dict(pad_val=[104, 116, 124], interpolation='bicubic')),
dict(
type='RandomErasing',
erase_prob=0.25,
mode='rand',
min_area_ratio=0.02,
max_area_ratio=0.3333333333333333,
fill_color=[103.53, 116.28, 123.675],
fill_std=[57.375, 57.12, 58.395]),
dict(type='PackClsInputs')
]
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=dict(
backend='petrel',
path_mapping=dict({
'./data/WebiNat5000':
's3://openmmlab/datasets/classification/WebiNat5000/',
'data/WebiNat5000':
's3://openmmlab/datasets/classification/WebiNat5000/'
}))),
dict(
type='ResizeEdge',
scale=256,
edge='short',
backend='pillow',
interpolation='bicubic'),
dict(type='CenterCrop', crop_size=224),
dict(type='PackClsInputs')
]
train_dataloader = dict(
pin_memory=True,
persistent_workers=True,
collate_fn=dict(type='default_collate'),
batch_size=16,
num_workers=16,
dataset=dict(
type='ImageNet',
data_root='data/WebiNat5000/',
ann_file='/mnt/petrelfs/share_data/liuyuan/data/testb-thr45-round2.txt',
data_prefix='train',
pipeline=[
dict(type='LoadImageFromFile'),
dict(
type='RandomResizedCrop',
scale=448,
backend='pillow',
interpolation='bicubic'),
dict(type='RandomFlip', prob=0.5, direction='horizontal'),
dict(
type='RandAugment',
policies='timm_increasing',
num_policies=2,
total_level=10,
magnitude_level=9,
magnitude_std=0.5,
hparams=dict(pad_val=[104, 116, 124],
interpolation='bicubic')),
dict(
type='RandomErasing',
erase_prob=0.25,
mode='rand',
min_area_ratio=0.02,
max_area_ratio=0.3333333333333333,
fill_color=[103.53, 116.28, 123.675],
fill_std=[57.375, 57.12, 58.395]),
dict(type='PackClsInputs')
],
_scope_='mmcls'),
sampler=dict(type='DefaultSampler', shuffle=True, _scope_='mmcls'))
val_dataloader = dict(
pin_memory=True,
persistent_workers=True,
collate_fn=dict(type='default_collate'),
batch_size=128,
num_workers=5,
dataset=dict(
type='ImageNet',
data_root='data/WebiNat5000/',
ann_file='/mnt/cache/liuyuan/research/draw/webinat/meta/val.txt',
data_prefix='train',
pipeline=[
dict(type='LoadImageFromFile'),
dict(
type='ResizeEdge',
scale=512,
edge='short',
backend='pillow',
interpolation='bicubic'),
dict(type='CenterCrop', crop_size=448),
dict(type='PackClsInputs')
],
_scope_='mmcls'),
sampler=dict(type='DefaultSampler', shuffle=False, _scope_='mmcls'))
val_evaluator = dict(type='Accuracy', topk=(1, 5), _scope_='mmcls')
test_dataloader = dict(
pin_memory=True,
persistent_workers=True,
collate_fn=dict(type='default_collate'),
batch_size=128,
num_workers=5,
dataset=dict(
type='ImageNet',
data_root='data/WebiNat5000/',
ann_file='/mnt/cache/liuyuan/research/draw/webinat/meta/val.txt',
data_prefix='train',
pipeline=[
dict(type='LoadImageFromFile'),
dict(
type='ResizeEdge',
scale=512,
edge='short',
backend='pillow',
interpolation='bicubic'),
dict(type='CenterCrop', crop_size=448),
dict(type='PackClsInputs')
],
_scope_='mmcls'),
sampler=dict(type='DefaultSampler', shuffle=False, _scope_='mmcls'))
test_evaluator = dict(type='Accuracy', topk=(1, 5), _scope_='mmcls')
optim_wrapper = dict(
optimizer=dict(
type='AdamW',
lr=0.001,
weight_decay=0.05,
eps=1e-08,
betas=(0.9, 0.999),
_scope_='mmcls',
model_type='vit',
layer_decay_rate=0.75),
paramwise_cfg=dict(
norm_decay_mult=0.0,
bias_decay_mult=0.0,
custom_keys=dict({
'.absolute_pos_embed': dict(decay_mult=0.0),
'.relative_position_bias_table': dict(decay_mult=0.0),
'.cls_token': dict(decay_mult=0.0),
'.pos_embed': dict(decay_mult=0.0)
})),
constructor='mmselfsup.LearningRateDecayOptimWrapperConstructor')
param_scheduler = [
dict(
type='LinearLR',
start_factor=0.0001,
by_epoch=True,
begin=0,
end=5,
convert_to_iter_based=True),
dict(
type='CosineAnnealingLR',
T_max=25,
by_epoch=True,
begin=5,
end=30,
eta_min=1e-06,
convert_to_iter_based=True)
]
train_cfg = dict(by_epoch=True, max_epochs=30, val_interval=1)
val_cfg = dict()
test_cfg = dict()
auto_scale_lr = dict(base_batch_size=1024)
default_scope = 'mmcls'
default_hooks = dict(
timer=dict(type='IterTimerHook', _scope_='mmcls'),
logger=dict(type='LoggerHook', interval=100, _scope_='mmcls'),
param_scheduler=dict(type='ParamSchedulerHook', _scope_='mmcls'),
checkpoint=dict(
type='CheckpointHook', interval=1, _scope_='mmcls', max_keep_ckpts=1),
sampler_seed=dict(type='DistSamplerSeedHook', _scope_='mmcls'),
visualization=dict(
type='VisualizationHook', enable=False, _scope_='mmcls'))
env_cfg = dict(
cudnn_benchmark=True,
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
dist_cfg=dict(backend='nccl'))
vis_backends = [dict(type='LocalVisBackend', _scope_='mmcls')]
visualizer = dict(
type='ClsVisualizer',
vis_backends=[dict(type='LocalVisBackend')],
_scope_='mmcls')
log_level = 'INFO'
load_from = None
resume = False
model = dict(
type='ImageClassifier',
backbone=dict(
type='VisionTransformer',
arch='large',
img_size=448,
patch_size=16,
drop_path_rate=0.1,
avg_token=True,
output_cls_token=False,
final_norm=False,
init_cfg=dict(
type='Pretrained',
checkpoint=
'work_dirs/selfsup/mae_vit-large-p16_8xb512-amp-coslr-1600e_in1k/epoch_1600.pth',
prefix='backbone.')),
neck=None,
head=dict(
type='mmselfsup.ArcFaceClsHeadAdaptiveMargin',
num_classes=5000,
in_channels=1024,
number_sub_center=3,
ann_file='./data/ACCV_workshop/meta/roundb2/train.txt',
loss=dict(type='CrossEntropyLoss', loss_weight=1.0)),
train_cfg=None)
file_client_args = dict(
backend='memcached',
path_mapping=dict({
'./data/WebiNat5000':
's3://openmmlab/datasets/classification/WebiNat5000/',
'data/WebiNat5000':
's3://openmmlab/datasets/classification/WebiNat5000/'
}),
server_list_cfg='/mnt/lustre/share/pymc/pcs_server_list.conf',
client_cfg='/mnt/lustre/share/pymc/mc.conf',
sys_path='/mnt/lustre/share/pymc')
data_root = 'data/WebiNat5000/'
train_ann_file = '/mnt/cache/liuyuan/research/accv/filter_data/all_new.txt'
val_ann_file = '/mnt/cache/liuyuan/research/draw/webinat/meta/val.txt'
randomness = dict(seed=0)
val_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=dict(
backend='memcached',
server_list_cfg='/mnt/lustre/share/pymc/pcs_server_list.conf',
client_cfg='/mnt/lustre/share/pymc/mc.conf',
sys_path='/mnt/lustre/share/pymc')),
dict(
type='ResizeEdge',
scale=512,
edge='short',
backend='pillow',
interpolation='bicubic'),
dict(type='CenterCrop', crop_size=448),
dict(type='PackClsInputs')
]
launcher = 'slurm'
work_dir = './work_dirs/vit-large-p16_ft-8xb128-coslr-arcface-30e_in1k-448'