File size: 4,340 Bytes
fb1b420
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
data:
  root_path: ${oc.env:PROJECT_ROOT}/data/alex_20
  prop: eah
  num_targets: 1
  niggli: true
  primitive: false
  graph_method: crystalnn
  lattice_scale_method: scale_length
  preprocess_workers: 30
  readout: mean
  max_atoms: 20
  otf_graph: false
  eval_model_name: alex20
  tolerance: 0.1
  use_space_group: false
  use_pos_index: false
  train_max_epochs: 6000
  early_stopping_patience: 60
  teacher_forcing_max_epoch: 500
  datamodule:
    _target_: diffcsp.pl_data.datamodule.CrystDataModule
    datasets:
      train:
        _target_: diffcsp.pl_data.dataset.CrystDataset
        name: Formation energy train
        path: ${data.root_path}/train.csv
        save_path: ${data.root_path}/train_ori.pt
        prop: ${data.prop}
        niggli: ${data.niggli}
        primitive: ${data.primitive}
        graph_method: ${data.graph_method}
        tolerance: ${data.tolerance}
        use_space_group: ${data.use_space_group}
        use_pos_index: ${data.use_pos_index}
        lattice_scale_method: ${data.lattice_scale_method}
        preprocess_workers: ${data.preprocess_workers}
      val:
      - _target_: diffcsp.pl_data.dataset.CrystDataset
        name: Formation energy val
        path: ${data.root_path}/val.csv
        save_path: ${data.root_path}/val_ori.pt
        prop: ${data.prop}
        niggli: ${data.niggli}
        primitive: ${data.primitive}
        graph_method: ${data.graph_method}
        tolerance: ${data.tolerance}
        use_space_group: ${data.use_space_group}
        use_pos_index: ${data.use_pos_index}
        lattice_scale_method: ${data.lattice_scale_method}
        preprocess_workers: ${data.preprocess_workers}
      test:
      - _target_: diffcsp.pl_data.dataset.CrystDataset
        name: Formation energy test
        path: ${data.root_path}/test.csv
        save_path: ${data.root_path}/test_ori.pt
        prop: ${data.prop}
        niggli: ${data.niggli}
        primitive: ${data.primitive}
        graph_method: ${data.graph_method}
        tolerance: ${data.tolerance}
        use_space_group: ${data.use_space_group}
        use_pos_index: ${data.use_pos_index}
        lattice_scale_method: ${data.lattice_scale_method}
        preprocess_workers: ${data.preprocess_workers}
    num_workers:
      train: 0
      val: 0
      test: 0
    batch_size:
      train: 4096
      val: 4096
      test: 1024
logging:
  val_check_interval: 1
  wandb:
    name: ${expname}
    project: diffcsp
    entity: null
    log_model: true
    mode: online
    group: ${expname}
  wandb_watch:
    log: all
    log_freq: 500
  lr_monitor:
    logging_interval: step
    log_momentum: false
model:
  decoder:
    _target_: diffcsp.pl_modules.cspnet.CSPNet
    hidden_dim: 512
    latent_dim: 0
    max_atoms: 100
    num_layers: 6
    act_fn: silu
    dis_emb: sin
    num_freqs: 128
    edge_style: fc
    max_neighbors: ${model.max_neighbors}
    cutoff: ${model.radius}
    ln: true
    ip: true
  beta_scheduler:
    _target_: diffcsp.pl_modules.diff_utils.BetaScheduler
    timesteps: ${model.timesteps}
    scheduler_mode: cosine
  sigma_scheduler:
    _target_: diffcsp.pl_modules.diff_utils.SigmaScheduler
    timesteps: ${model.timesteps}
    sigma_begin: 0.005
    sigma_end: 0.5
  _target_: diffcsp.pl_modules.diffusion_w_type.CSPDiffusion
  time_dim: 256
  latent_dim: 0
  cost_coord: 1.0
  cost_lattice: 1.0
  cost_type: 20.0
  max_neighbors: 20
  radius: 7.0
  timesteps: 1000
optim:
  optimizer:
    _target_: torch.optim.Adam
    lr: 0.001
    betas:
    - 0.9
    - 0.999
    eps: 1.0e-08
    weight_decay: 0
  use_lr_scheduler: true
  lr_scheduler:
    _target_: torch.optim.lr_scheduler.ReduceLROnPlateau
    factor: 0.6
    patience: 30
    min_lr: 0.0001
train:
  deterministic: true
  random_seed: 42
  pl_trainer:
    fast_dev_run: false
    accelerator: auto
    precision: 32
    max_epochs: ${data.train_max_epochs}
    accumulate_grad_batches: 1
    num_sanity_val_steps: 2
    gradient_clip_val: 0.5
    gradient_clip_algorithm: value
    profiler: simple
  monitor_metric: val_loss
  monitor_metric_mode: min
  early_stopping:
    patience: ${data.early_stopping_patience}
    verbose: true
  model_checkpoints:
    save_top_k: 1
    verbose: false
    save_last: false
  ckpt_path: null
expname: alex_20
core:
  version: 0.0.1
  tags:
  - ${now:%Y-%m-%d}