| data_module: |
| _target_: mattergen.common.data.datamodule.CrystDataModule |
| _recursive_: true |
| properties: [] |
| transforms: |
| - _target_: mattergen.common.data.transform.symmetrize_lattice |
| _partial_: true |
| - _target_: mattergen.common.data.transform.set_chemical_system_string |
| _partial_: true |
| - _target_: mattergen.common.data.transform.set_composition_count |
| _partial_: true |
| dataset_transforms: |
| - _target_: mattergen.common.data.dataset_transform.filter_sparse_properties |
| _partial_: true |
| average_density: 0.05771451654022283 |
| root_dir: ${oc.env:PROJECT_ROOT}/../datasets/cache/broader_csp |
| train_dataset: |
| _target_: mattergen.common.data.dataset.CrystalDataset.from_cache_path |
| cache_path: ${data_module.root_dir}/train |
| properties: ${data_module.properties} |
| transforms: ${data_module.transforms} |
| dataset_transforms: ${data_module.dataset_transforms} |
| val_dataset: |
| _target_: mattergen.common.data.dataset.CrystalDataset.from_cache_path |
| cache_path: ${data_module.root_dir}/val |
| properties: ${data_module.properties} |
| transforms: ${data_module.transforms} |
| dataset_transforms: ${data_module.dataset_transforms} |
| test_dataset: |
| _target_: mattergen.common.data.dataset.CrystalDataset.from_cache_path |
| cache_path: ${data_module.root_dir}/test |
| properties: ${data_module.properties} |
| transforms: ${data_module.transforms} |
| dataset_transforms: ${data_module.dataset_transforms} |
| num_workers: |
| train: 0 |
| val: 0 |
| test: 0 |
| batch_size: |
| train: ${eval:'(512 // ${trainer.accumulate_grad_batches}) // (${trainer.devices} |
| * ${trainer.num_nodes})'} |
| val: 8 |
| test: 8 |
| max_epochs: 900 |
| trainer: |
| _target_: pytorch_lightning.Trainer |
| accelerator: gpu |
| devices: 8 |
| num_nodes: 9 |
| precision: 32 |
| max_epochs: ${data_module.max_epochs} |
| accumulate_grad_batches: 1 |
| gradient_clip_val: 0.5 |
| gradient_clip_algorithm: value |
| check_val_every_n_epoch: 5 |
| strategy: |
| _target_: pytorch_lightning.strategies.ddp.DDPStrategy |
| find_unused_parameters: true |
| callbacks: |
| - _target_: pytorch_lightning.callbacks.LearningRateMonitor |
| logging_interval: step |
| log_momentum: false |
| - _target_: pytorch_lightning.callbacks.ModelCheckpoint |
| monitor: loss_val |
| mode: min |
| save_top_k: 1 |
| save_last: true |
| verbose: false |
| every_n_epochs: 1 |
| filename: '{epoch}-{loss_val:.2f}' |
| - _target_: pytorch_lightning.callbacks.TQDMProgressBar |
| refresh_rate: 50 |
| - _target_: mattergen.common.data.callback.SetPropertyScalers |
| max_steps: 200000 |
| lightning_module: |
| _target_: mattergen.diffusion.lightning_module.DiffusionLightningModule |
| optimizer_partial: |
| lr: 0.0001 |
| _target_: torch.optim.Adam |
| _partial_: true |
| scheduler_partials: |
| - scheduler: |
| _target_: torch.optim.lr_scheduler.ReduceLROnPlateau |
| factor: 0.6 |
| patience: 100 |
| min_lr: 1.0e-06 |
| _partial_: true |
| interval: epoch |
| frequency: 1 |
| monitor: loss_train |
| strict: true |
| diffusion_module: |
| _target_: mattergen.diffusion.diffusion_module.DiffusionModule |
| model: |
| _target_: mattergen.denoiser.GemNetTDenoiser |
| hidden_dim: 512 |
| gemnet: |
| _target_: mattergen.common.gemnet.gemnet.GemNetT |
| num_targets: 1 |
| latent_dim: ${eval:'${..hidden_dim} * (1 + len(${..property_embeddings}))'} |
| atom_embedding: |
| _target_: mattergen.common.gemnet.layers.embedding_block.AtomEmbedding |
| emb_size: ${...hidden_dim} |
| with_mask_type: ${eval:'${...denoise_atom_types} and "${...atom_type_diffusion}" |
| == "mask"'} |
| emb_size_atom: ${..hidden_dim} |
| emb_size_edge: ${..hidden_dim} |
| max_neighbors: 50 |
| max_cell_images_per_dim: 5 |
| cutoff: 7.0 |
| num_blocks: 4 |
| regress_stress: true |
| otf_graph: true |
| scale_file: ${oc.env:PROJECT_ROOT}/common/gemnet/gemnet-dT.json |
| denoise_atom_types: true |
| atom_type_diffusion: mask |
| property_embeddings_adapt: {} |
| property_embeddings: {} |
| corruption: |
| _target_: mattergen.diffusion.corruption.multi_corruption.MultiCorruption |
| sdes: |
| pos: |
| _target_: mattergen.common.diffusion.corruption.NumAtomsVarianceAdjustedWrappedVESDE |
| wrapping_boundary: 1.0 |
| sigma_max: 5.0 |
| limit_info_key: num_atoms |
| cell: |
| _target_: mattergen.common.diffusion.corruption.LatticeVPSDE.from_vpsde_config |
| vpsde_config: |
| beta_min: 0.1 |
| beta_max: 20 |
| limit_density: ${data_module.average_density} |
| limit_var_scaling_constant: 0.25 |
| loss_fn: |
| _target_: mattergen.common.loss.MaterialsLoss |
| reduce: sum |
| include_pos: true |
| include_cell: true |
| include_atomic_numbers: false |
| weights: |
| cell: 1.0 |
| pos: 0.1 |
| pre_corruption_fn: |
| _target_: mattergen.property_embeddings.SetEmbeddingType |
| p_unconditional: 0.2 |
| dropout_fields_iid: false |
| auto_resume: true |
| |