core: version: ${get_flowmm_version:} tags: - ${now:%Y-%m-%d} logging: val_check_interval: 5 wandb: project: rfmcsp-${model.target_distribution}-${hydra:runtime.choices.data} entity: null log_model: true mode: online group: ${hydra:runtime.choices.model}-${hydra:runtime.choices.vectorfield}-${generate_id:} wandb_watch: log: all log_freq: 500 lr_monitor: logging_interval: step log_momentum: false optim: optimizer: _target_: torch.optim.AdamW lr: 0.0003 weight_decay: 0.0 lr_scheduler: _target_: torch.optim.lr_scheduler.CosineAnnealingLR T_max: ${data.train_max_epochs} eta_min: 1.0e-05 interval: epoch ema_decay: 0.999 train: deterministic: warn random_seed: 42 pl_trainer: fast_dev_run: false devices: 1 accelerator: gpu precision: 32 max_epochs: ${data.train_max_epochs} accumulate_grad_batches: 1 num_sanity_val_steps: 1 gradient_clip_val: 0.5 gradient_clip_algorithm: value profiler: simple monitor_metric: val/loss monitor_metric_mode: min model_checkpoints: save_top_k: 1 verbose: false save_last: false every_n_epochs_checkpoint: every_n_epochs: 100 save_top_k: -1 verbose: false save_last: false val: compute_nll: false test: compute_nll: false compute_loss: true integrate: div_mode: rademacher method: euler num_steps: 1000 normalize_loglik: true inference_anneal_slope: 0.0 inference_anneal_offset: 0.0 base_distribution_from_data: false data: dataset_name: mp_20 dim_coords: 3 root_path: ${oc.env:PROJECT_ROOT}/data/mp_20 prop: formation_energy_per_atom 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: mp20 tolerance: 0.1 use_space_group: false use_pos_index: false train_max_epochs: 2000 early_stopping_patience: 100000 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: 40 val: 40 test: 40 batch_size: train: 256 val: 1024 test: 512 model: cost_coord: 400.0 cost_lattice: 1.0 cost_type: 40.0 cost_cross_ent: 0.0 affine_combine_costs: true target_distribution: unconditional self_cond: false manifold_getter: atom_type_manifold: analog_bits coord_manifold: flat_torus_01 lattice_manifold: lattice_params analog_bits_scale: 1.0 length_inner_coef: 1.0 vectorfield: _target_: flowmm.model.arch.CSPNet hidden_dim: 512 time_dim: 256 num_layers: 6 act_fn: silu dis_emb: sin num_freqs: 128 edge_style: fc max_neighbors: 20 cutoff: 7.0 ln: true use_log_map: true dim_atomic_rep: ${get_dim_atomic_rep:${model.manifold_getter.atom_type_manifold}} lattice_manifold: ${model.manifold_getter.lattice_manifold} concat_sum_pool: true represent_num_atoms: true represent_angle_edge_to_lattice: true self_edges: false self_cond: ${model.self_cond}