-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopt.py
124 lines (111 loc) · 6.7 KB
/
opt.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
import argparse
import configargparse
def get_opts():
parser = configargparse.ArgumentParser()
parser.add_argument('--config', is_config_file=True,
help='config file path')
parser.add_argument('--root_dir', type=str, required=True,
help='root directory of dataset')
parser.add_argument('--dataset_name', type=str, default='blender',
choices=['blender', 'phototourism'],
help='which dataset to train/val')
# for blender
parser.add_argument('--data_perturb', nargs="+", type=str, default=[],
help='''what perturbation to add to data.
Available choices: [], ["color"], ["occ"] or ["color", "occ"]
''')
parser.add_argument('--img_wh', nargs="+", type=int, default=[800, 800],
help='resolution (img_w, img_h) of the image')
# for phototourism
parser.add_argument('--img_downscale', type=int, default=1,
help='how much to downscale the images for phototourism dataset')
parser.add_argument('--use_cache', default=False, action="store_true",
help='whether to use ray cache (make sure img_downscale is the same)')
parser.add_argument('--uw_model', default=False, action="store_true",
help='whether to use underwater model')
parser.add_argument('--z_input', default=False, action="store_true",
help='whether to input z to BS and D in underwater model')
parser.add_argument('--uw_model_trans', default=False, action="store_true",
help='whether to use underwater model transient')
parser.add_argument('--ndc', default=False, action="store_true",
help='whether to use ndc')
parser.add_argument('--transient_uw', default=False, action="store_true",
help='whether to put the underwater model in the transient instead of the static')
parser.add_argument('--uw_nerf', default=False, action="store_true",
help='whether to use uw nerf')
parser.add_argument('--analitic_bs', default=False, action="store_true",
help='whether to use only analitic bs')
# original NeRF parameters
parser.add_argument('--N_emb_xyz', type=int, default=10,
help='number of xyz embedding frequencies')
parser.add_argument('--N_emb_dir', type=int, default=4,
help='number of direction embedding frequencies')
parser.add_argument('--N_samples', type=int, default=64,
help='number of coarse samples')
parser.add_argument('--N_importance', type=int, default=128,
help='number of additional fine samples')
parser.add_argument('--use_disp', default=False, action="store_true",
help='use disparity depth sampling')
parser.add_argument('--perturb', type=float, default=1.0,
help='factor to perturb depth sampling points')
parser.add_argument('--noise_std', type=float, default=1.0,
help='std dev of noise added to regularize sigma')
# NeRF-W parameters
parser.add_argument('--N_vocab', type=int, default=100,
help='''number of vocabulary (number of images)
in the dataset for nn.Embedding''')
parser.add_argument('--encode_a', default=False, action="store_true",
help='whether to encode appearance (NeRF-A)')
parser.add_argument('--N_a', type=int, default=48,
help='number of embeddings for appearance')
parser.add_argument('--encode_t', default=False, action="store_true",
help='whether to encode transient object (NeRF-U)')
parser.add_argument('--N_tau', type=int, default=16,
help='number of embeddings for transient objects')
parser.add_argument('--beta_min', type=float, default=0.1,
help='minimum color variance for each ray')
parser.add_argument('--batch_size', type=int, default=1024,
help='batch size')
parser.add_argument('--chunk', type=int, default=32*1024,
help='chunk size to split the input to avoid OOM')
parser.add_argument('--num_epochs', type=int, default=16,
help='number of training epochs')
parser.add_argument('--num_gpus', type=int, default=1,
help='number of gpus')
parser.add_argument('--ckpt_path', type=str, default=None,
help='pretrained checkpoint path to load')
parser.add_argument('--prefixes_to_ignore', nargs='+', type=str, default=['loss'],
help='the prefixes to ignore in the checkpoint state dict')
parser.add_argument('--optimizer', type=str, default='adam',
help='optimizer type',
choices=['sgd', 'adam', 'radam', 'ranger'])
parser.add_argument('--lr', type=float, default=5e-4,
help='learning rate')
parser.add_argument('--momentum', type=float, default=0.9,
help='learning rate momentum')
parser.add_argument('--weight_decay', type=float, default=0,
help='weight decay')
parser.add_argument('--lr_scheduler', type=str, default='steplr',
help='scheduler type',
choices=['steplr', 'cosine', 'poly'])
#### params for warmup, only applied when optimizer == 'sgd' or 'adam'
parser.add_argument('--warmup_multiplier', type=float, default=1.0,
help='lr is multiplied by this factor after --warmup_epochs')
parser.add_argument('--warmup_epochs', type=int, default=0,
help='Gradually warm-up(increasing) learning rate in optimizer')
###########################
#### params for steplr ####
parser.add_argument('--decay_step', nargs='+', type=int, default=[20],
help='scheduler decay step')
parser.add_argument('--decay_gamma', type=float, default=0.1,
help='learning rate decay amount')
###########################
#### params for poly ####
parser.add_argument('--poly_exp', type=float, default=0.9,
help='exponent for polynomial learning rate decay')
###########################
parser.add_argument('--exp_name', type=str, default='exp',
help='experiment name')
parser.add_argument('--refresh_every', type=int, default=1,
help='print the progress bar every X steps')
return parser.parse_args()