File size: 3,364 Bytes
436b829
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
data: 
  _target_: ppd.data.general_datamodule.GeneralDataModule
  val_dataset:
    dataset_opts:

      - _target_: ppd.data.nyu.Dataset
        data_root: /data/Monocular_Data/NYU
        split: test
        transforms:
          - _target_: ppd.data.transform.PrepareForNet
        split_path: ppd/datasets/nyu/filename_list_test.txt

      - _target_: ppd.data.diode.Dataset
        data_root: /data/Monocular_Data/DIODE
        split: test
        transforms:
          - _target_: ppd.data.transform.PrepareForNet
        split_path: ppd/datasets/diode/diode_val_all_filename_list.txt

      - _target_: ppd.data.eth3d.Dataset
        data_root: /data/Monocular_Data/ETH3D
        split: test
        transforms:
          - _target_: ppd.data.transform.PrepareForNet
        split_path: ppd/datasets/eth3d/eth3d_filename_list.txt

      - _target_: ppd.data.scannet.Dataset
        data_root: /data/Monocular_Data/ScanNet
        split: test
        transforms:
          - _target_: ppd.data.transform.PrepareForNet
        split_path: ppd/datasets/scannet/scannet_val_sampled_list_800_1.txt

      - _target_: ppd.data.kitti.Dataset
        data_root: /data/Monocular_Data/KITTI
        split: test
        transforms:
          - _target_: ppd.data.transform.PrepareForNet
        split_path: ppd/datasets/kitti/eigen_test_files_with_gt.txt

model:
  _target_: ppd.models.depth_estimation_model.DepthEstimationModel
  output_dir: ${output_dir}/results
  save_vis_depth: True
  pipeline:
    _target_: ppd.models.ppd_train.PixelPerfectDepth
    config:
      pretrain: False
      semantics_model: MoGe2
      semantics_pth: checkpoints/moge2.pt
      score_model:
        _target_: ppd.models.dit.DiT
        depth: 24
        hidden_size: 1024
        patch_size: 8
        num_heads: 16
        in_channels: 4
        out_channels: 1
        input_size: [768, 1024]
      diffusion:
        schedule:
          type: lerp
          T: 1000
        sampler:
          type: euler
          prediction_type: v_lerp
        timesteps:
          training:
            type: logitnormal
            loc: 0.0
            scale: 1.0
          sampling:
            type: uniform
            steps: 4

  optimizer:
    _target_: torch.optim.AdamW
    _partial_: true
    lr: 1e-4
    weight_decay: 0.0

  lr_table:
    _target_: ppd.utils.lr_table.LRTable
    default_lr: 1e-4

# PyTorch Lightning Callbacks
callbacks:
  model_checkpoint:
    _target_: pytorch_lightning.callbacks.ModelCheckpoint
    dirpath: ${output_dir}/checkpoints/
    filename: "e{epoch:03d}-s{step:06d}"
    monitor: val/relative_abs_rel/dataloader_idx_1
    mode: min
    save_top_k: 8
    auto_insert_metric_name: False  
    save_weights_only: True  
    every_n_epochs: 1
    save_last: True

# Logger Configuration
logger:
  _target_: pytorch_lightning.loggers.TensorBoardLogger
  save_dir: ${output_dir}
  name: ''
  version: 'tb'

# PyTorch Lightning Configuration
pl_trainer:
  devices: 8
  num_nodes: 1
  num_sanity_val_steps: 0
  max_epochs: 500
  limit_train_batches: 2000
  log_every_n_steps: 50
  strategy: ddp_find_unused_parameters_true
  precision: bf16-mixed

# Default Configuration
print_cfg: True
seed: 666
exp_name: test
resume_training: True
confirm_delete_previous_dir: False
output_dir: experiments/outputs/${exp_name}
pretrained_model: checkpoints/ppd_moge.pth