| 455 | |
| 456 | |
| 457 | def config_parser(): |
| 458 | |
| 459 | import configargparse |
| 460 | parser = configargparse.ArgumentParser() |
| 461 | parser.add_argument('--config', is_config_file=True, |
| 462 | help='config file path') |
| 463 | parser.add_argument("--expname", type=str, |
| 464 | help='experiment name') |
| 465 | parser.add_argument("--basedir", type=str, default='./logs/', |
| 466 | help='where to store ckpts and logs') |
| 467 | parser.add_argument("--datadir", type=str, default='./data/fern', |
| 468 | help='input data directory') |
| 469 | |
| 470 | # training options |
| 471 | parser.add_argument("--netdepth", type=int, default=8, |
| 472 | help='layers in network') |
| 473 | parser.add_argument("--netwidth", type=int, default=256, |
| 474 | help='channels per layer') |
| 475 | parser.add_argument("--netdepth_fine", type=int, default=8, |
| 476 | help='layers in fine network') |
| 477 | parser.add_argument("--netwidth_fine", type=int, default=256, |
| 478 | help='channels per layer in fine network') |
| 479 | parser.add_argument("--N_rand", type=int, default=32*32*4, |
| 480 | help='batch size (number of random rays per gradient step)') |
| 481 | parser.add_argument("--lrate", type=float, default=5e-4, |
| 482 | help='learning rate') |
| 483 | parser.add_argument("--lrate_decay", type=int, default=250, |
| 484 | help='exponential learning rate decay (in 1000 steps)') |
| 485 | parser.add_argument("--chunk", type=int, default=1024*32, |
| 486 | help='number of rays processed in parallel, decrease if running out of memory') |
| 487 | parser.add_argument("--netchunk", type=int, default=1024*64, |
| 488 | help='number of pts sent through network in parallel, decrease if running out of memory') |
| 489 | parser.add_argument("--no_reload", action='store_true', |
| 490 | help='do not reload weights from saved ckpt') |
| 491 | parser.add_argument("--ft_path", type=str, default=None, |
| 492 | help='specific weights npy file to reload for coarse network') |
| 493 | |
| 494 | # rendering options |
| 495 | parser.add_argument("--N_samples", type=int, default=64, |
| 496 | help='number of coarse samples per ray') |
| 497 | parser.add_argument("--N_importance", type=int, default=0, |
| 498 | help='number of additional fine samples per ray') |
| 499 | parser.add_argument("--perturb", type=float, default=1., |
| 500 | help='set to 0. for no jitter, 1. for jitter') |
| 501 | parser.add_argument("--use_viewdirs", action='store_true', |
| 502 | help='use full 5D input instead of 3D') |
| 503 | parser.add_argument("--i_embed", type=int, default=0, |
| 504 | help='set 0 for default positional encoding, -1 for none') |
| 505 | parser.add_argument("--multires", type=int, default=10, |
| 506 | help='log2 of max freq for positional encoding (3D location)') |
| 507 | parser.add_argument("--multires_views", type=int, default=4, |
| 508 | help='log2 of max freq for positional encoding (2D direction)') |
| 509 | parser.add_argument("--raw_noise_std", type=float, default=0., |
| 510 | help='std dev of noise added to regularize sigma_a output, 1e0 recommended') |
| 511 | |
| 512 | parser.add_argument("--render_only", action='store_true', |
| 513 | help='do not optimize, reload weights and render out render_poses path') |
| 514 | parser.add_argument("--render_test", action='store_true', |