-
Notifications
You must be signed in to change notification settings - Fork 24
/
qm9_mol_gen_ddpm.yaml
127 lines (100 loc) · 3.02 KB
/
qm9_mol_gen_ddpm.yaml
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
# @package _global_
# to execute this experiment run:
# python train.py experiment=qm9_mol_gen_ddpm
defaults:
- override /datamodule: edm_qm9.yaml
- override /model: qm9_mol_gen_ddpm.yaml
- override /callbacks: default.yaml
- override /trainer: default.yaml
# all parameters below will be merged with parameters from default configurations set above
# this allows you to overwrite only specified parameters
tags: ["molecule_generation", "qm9"]
seed: 42
callbacks:
model_checkpoint:
monitor: "val/loss"
save_top_k: 3
early_stopping:
monitor: "val/loss"
patience: 10
trainer:
min_epochs: 1000
max_epochs: 5000
strategy: ddp_find_unused_parameters_false
accelerator: gpu
devices: 1
num_nodes: 1
accumulate_grad_batches: 1
model:
optimizer:
lr: 1e-4
weight_decay: 1e-12
model_cfg:
h_hidden_dim: 256
chi_hidden_dim: 32
e_hidden_dim: 64
xi_hidden_dim: 16
num_encoder_layers: 9
num_decoder_layers: 3
dropout: 0.0
module_cfg:
selected_GCP:
# which version of the GCP module to use (e.g., GCP or GCP2)
_target_: src.models.components.gcpnet.GCP2
_partial_: true
norm_x_diff: true
scalar_gate: 0
vector_gate: true # note: For both GCP and GCP2, this parameter is used; For GCP2, this mimics updating vector features without directly using frame vectors
vector_residual: false # note: For both GCP and GCP2, this parameter is used
vector_frame_residual: false # note: for GCP2, this parameter is unused
frame_gate: false # note: for GCP2, if this parameter and `vector_gate` are both set to `false`, row-wise vector self-gating is applied instead
sigma_frame_gate: false # note: For GCP, this parameter overrides `frame_gate`; For GCP2, this parameter is unused and is replaced in functionality by `vector_gate`
scalar_nonlinearity: silu
vector_nonlinearity: silu
nonlinearities:
- ${..scalar_nonlinearity}
- ${..vector_nonlinearity}
bottleneck: 4
vector_linear: true
vector_identity: true
default_vector_residual: false
default_bottleneck: 4
node_positions_weight: 1.0
update_positions_with_vector_sum: false
ablate_frame_updates: false
ablate_scalars: false
ablate_vectors: false
clip_gradients: true
layer_cfg:
mp_cfg:
edge_encoder: false
edge_gate: false
num_message_layers: 4
message_residual: 0
message_ff_multiplier: 1
self_message: true
use_residual_message_gcp: true
pre_norm: false
use_gcp_norm: false
use_gcp_dropout: false
use_scalar_message_attention: true
num_feedforward_layers: 1
dropout: 0.0
nonlinearity_slope: 1e-2
diffusion_cfg:
ddpm_mode: unconditional
dynamics_network: gcpnet
num_timesteps: 1000
norm_training_by_max_nodes: false
datamodule:
dataloader_cfg:
num_train: -1
num_val: -1
num_test: -1
batch_size: 64
num_workers: 4
logger:
wandb:
name: 02092023_QM9MoleculeGenerationDDPM
group: "QM9"
tags: ${tags}