christofgehrig's picture
Upload nuclear-gradient models
18f5624 verified
Raw
History Blame Contribute Delete
14.9 kB
data:
datamodule:
_target_: mldft.ml.data.datamodule.OFDataModule
transforms: ${data.transforms}
split_file:
_target_: mldft.utils.dynamic_splitfiles.construct_splitfile
split_files: ${oc.env:DFT_DATA}/${data.dataset_name}/split.pkl
output_file: ${paths.output_dir}/split.pkl
data_dir: ${oc.env:DFT_DATA}
basis_info: ${data.basis_info}
batch_size: 128
num_workers: 8
pin_memory: false
shuffle_train: true
shuffle_val: false
shuffle_test: false
do_denop_val: ${denop_val}
denop_val_select: seeded_random
n_denop_mols: 10
requires_grid: ${requires_grid:${data.target_key},${denop_settings.negative_integrated_density_penalty_weight}}
grid_level: ${denop_settings.grid_level}
grid_prune: ${denop_settings.grid_prune}
dataset_kwargs:
add_irreps: true
cache_in_memory: false
energy_key: e_${data.target_key}
gradient_key: grad_${data.target_key}
limit_scf_iterations:
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- -1
keep_initial_guess: false
restricted: true
load_nuclear_gradients: false
hdf5_manifest_path: ${data.dataset_name}/{label_subdir}_h5_${data.target_key}/manifest.json
denop_hdf5_manifest_path: ${data.dataset_name}/labels_denop_h5_${data.target_key}/manifest.json
hdf5_max_open_shards: 256
label_path: false
kohn_sham_path: false
ground_state_coeffs: false
dataloader_kwargs:
follow_batch:
- coeffs
- atomic_numbers
list_keys:
- overlap_matrix
- transform_grad_contracted
transforms:
cached_transforms:
name: local_frames_global_${data.natural_reparametrization.orthogonalization}_natrep
additional_pre_transforms:
- _target_: mldft.ml.data.components.convert_transforms.AddOverlapMatrix
basis_info: ${data.basis_info}
transforms:
- _target_: mldft.ml.data.components.basis_transforms.ToLocalFrames
sparse: false
- _target_: mldft.ml.data.components.basis_transforms.ToGlobalNatRep
orthogonalization: ${data.natural_reparametrization.orthogonalization}
_target_: mldft.ml.data.components.basis_transforms.MasterTransformation
name: local_frames_global_${data.natural_reparametrization.orthogonalization}_natrep
use_cached_data: true
pre_transforms:
- _target_: mldft.ml.data.components.convert_transforms.ToTorch
float_dtype: torch.float64
- _target_: mldft.ml.data.components.convert_transforms.ProjectGradient
- _target_: mldft.ml.data.components.convert_transforms.AddRadiusEdgeIndex
radius: ${data.cutoff}
- _target_: mldft.ml.data.components.convert_transforms.AddLocalFrames
basis_transforms: []
post_transforms:
- _target_: mldft.ml.data.components.convert_transforms.ToTorch
add_transformation_matrix: false
target_key: kin_plus_xc
use_global_energy_bias: false
dataset_statistics:
_target_: mldft.ml.preprocess.dataset_statistics.DatasetStatistics
path: ${oc.env:DFT_DATA}/QMUGSBin0_perturbed_fock/dataset_statistics/dataset_statistics_labels_${data.transforms.name}_${data.datamodule.dataset_kwargs.energy_key}${mux:${data.use_global_energy_bias},'',_without_bias}.zarr
natural_reparametrization:
orthogonalization: symmetric
basis_info:
_target_: mldft.ml.data.components.basis_info.BasisInfo.from_dataset_info_yaml
path_to_data_info: ${oc.env:DFT_DATA}/${data.dataset_name}/dataset_info.yaml
atomic_numbers:
- 1
- 6
- 7
- 8
- 9
cutoff: 6.0
cutoff_start: 0.0
dataset_name: QM7X_QM9_QMUGSBin0-0X_perturbed_fock_OMolPBE_geo20
model:
optimizer:
_target_: torch.optim.AdamW
_partial_: true
lr: 7.0e-05
betas:
- 0.95
- 0.99
weight_decay: 1.0e-10
loss_function:
_target_: mldft.ml.models.components.loss_function.WeightedLoss
energy_loss:
weight: 0.1
loss:
_target_: mldft.ml.models.components.loss_function.EnergyLoss
loss_function:
_target_: torch.nn.L1Loss
reduction: none
sample_weigher:
_target_: mldft.ml.models.components.sample_weighers.HasEnergyLabelSampleWeigher
gradient_loss:
weight: 0.9
loss:
_target_: mldft.ml.models.components.loss_function.EnergyGradientLoss
loss_function:
_target_: torch.nn.L1Loss
reduction: none
sample_weigher:
_target_: mldft.ml.models.components.sample_weighers.HasEnergyLabelSampleWeigher
scheduler:
_target_: torch.optim.lr_scheduler.CosineAnnealingLR
_partial_: true
T_max: ${trainer.max_epochs}
eta_min: 0
last_epoch: -1
_target_: mldft.ml.models.mldft_module.MLDFTLitModule
variational: true
target_key: ${data.target_key}
compile: false
basis_info: ${data.basis_info}
loss_log_interval: 50
metric_interval: 50
enable_initial_guess_metrics: false
scheduler_interval: epoch
logging_mixin_interval: 1000
show_logging_mixins_in_progress_bar: false
do_denop_val: ${denop_val}
dataset_statistics:
_target_: mldft.ml.preprocess.dataset_statistics.DatasetStatistics
path: ${to_no_basis_transforms_dataset_statistics:${data.dataset_statistics.path},${data.transforms.name}}
density_optimizer: ${density_optimizer}
denop_settings: ${denop_settings}
net:
radial_embedding_module:
basis_info: ${data.basis_info}
directed: true
out_channels: 128
_target_: mldft.ml.models.components.radial_embedding.GaussianEmbedding
init_radius_range:
- 0
- 3
std_init_radius_range:
- 0.1
- 3
normalized: true
_target_: mldft.ml.models.components.graphformer.Graphformer
edge_mlp:
_target_: mldft.ml.models.components.mlp.MLP
in_channels: 128
hidden_channels:
- 768
- 32
activation_layer:
_target_: hydra.utils.get_class
path: torch.nn.SiLU
dropout: 0.0
energy_mlp:
_target_: mldft.ml.models.components.graphformer.MLPStack
in_channels: 768
hidden_channels:
- 768
- 1
activation_layer:
_target_: hydra.utils.get_class
path: torch.nn.SiLU
dropout: 0.0
disable_dropout_last_layer: true
disable_activation_last_layer: true
disable_norm_last_layer: true
mlp_class:
_partial_: true
_target_: mldft.ml.models.components.mlp.MLP
n_mlps: 4
node_embedding_module:
_target_: mldft.ml.models.components.node_embedding.NodeEmbedding.from_basis_info
basis_info: ${data.basis_info}
out_channels: 768
dst_in_channels: 128
p_hidden_channels: 768
p_num_layers: 3
p_activation:
_target_: hydra.utils.get_class
path: torch.nn.GELU
p_dropout: 0.0
dst_hidden_channels: 768
dst_num_layers: 3
dst_activation:
_target_: hydra.utils.get_class
path: torch.nn.GELU
dst_dropout: 0.0
lambda_co: 10.0
lambda_mul: 0.02
use_per_basis_func_shrink_gate: true
cutoff: ${data.cutoff}
cutoff_start: ${data.cutoff_start}
gnn_module:
_target_: mldft.ml.models.components.g3d_stack.G3DStack
g3d_class:
_partial_: true
_target_: mldft.ml.models.components.g3d_layer_tf.G3DLayerTF
in_reps:
_target_: tensorframes.reps.Irreps
irreps: 513x0+85x1
n_layers: 8
heads: 32
edge_dim: 1
dropout: 0.0
attention_weight_dropout: 0.0
mlp_hidden_dim: null
mlp_activation:
_target_: hydra.utils.get_class
path: torch.nn.GELU
norm_layer_class:
_target_: torch_geometric.nn.norm.layer_norm.LayerNorm
_partial_: true
mode: node
activation_dropout: 0.0
cutoff: ${data.cutoff}
cutoff_start: ${data.cutoff_start}
energy_readout_every: 2
atom_ref_module:
_target_: mldft.ml.models.components.atom_ref.AtomRef.from_dataset_statistics
dataset_statistics: ${data.dataset_statistics}
weigher_key: has_energy_label
initial_guess_module:
_target_: mldft.ml.models.components.initial_guess_delta_module.InitialGuessDeltaModule
input_size: 768
basis_info: ${data.basis_info}
dataset_statistics: ${data.dataset_statistics}
weigher_key: initial_guess_only
activation_function:
_target_: hydra.utils.get_class
path: torch.nn.GELU
hidden_layers:
- 768
dropout: 0.0
dimension_wise_rescaling_module:
_target_: mldft.ml.models.components.dimension_wise_rescaling.DimensionWiseRescaling.from_dataset_statistics
dataset_statistics: ${data.dataset_statistics}
weigher_key: has_energy_label
s_coeff: 50
s_grad: 0.05
epsilon: 1.0e-08
density_optimizer:
convergence_tolerance: 0.0001
max_cycle: 1000
reg_epsilon: null
reg_gamma: null
hard_projection: false
eigenvalue_threshold: null
quantile_threshold: null
orthogonal_projection: true
ks_basis: ${denop_settings.ks_basis}
apply_reg_mat_to_step: true
_target_: mldft.ofdft.optimizer.TorchOptimizer
torch_optimizer:
_target_: torch.optim.SGD
_partial_: true
lr: 0.003
momentum: 0.9
denop_settings:
initialization: sad
guess_path: null
normalize_initial_guess: true
ks_basis: 6-31G(2df,p)
xc_functional: PBE
negative_integrated_density_penalty_weight: 0.0
convergence_criterion: last_iter
grid_level: 3
grid_prune: nwchem_prune
max_xc_memory: 4000
callbacks:
learning_rate_monitor:
_target_: lightning.pytorch.callbacks.LearningRateMonitor
model_checkpoint:
_target_: mldft.ml.callbacks.checkpoint.ModelCheckpointWithPermissions
dirpath: ${paths.output_dir}/checkpoints
filename: val_loss_total_epoch_{epoch:03d}
monitor: val_loss/total
mode: min
save_last: false
auto_insert_metric_name: false
verbose: false
save_top_k: 1
save_weights_only: false
every_n_train_steps: null
train_time_interval: null
every_n_epochs: null
save_on_train_epoch_end: null
model_checkpoint_gs_abs_energy_error:
_target_: mldft.ml.callbacks.checkpoint.ModelCheckpointWithPermissions
dirpath: ${paths.output_dir}/checkpoints
filename: gs_abs_energy_error_epoch_{epoch:03d}
monitor: val_denop_metrics/gs_abs_energy_error
mode: min
save_last: false
auto_insert_metric_name: false
save_top_k: ${mux:${denop_val}, 1, 0}
save_weights_only: false
every_n_train_steps: null
train_time_interval: null
every_n_epochs: null
save_on_train_epoch_end: null
model_checkpoint_gs_l2_norm:
_target_: mldft.ml.callbacks.checkpoint.ModelCheckpointWithPermissions
dirpath: ${paths.output_dir}/checkpoints
filename: gs_l2_norm_epoch_{epoch:03d}
monitor: val_denop_metrics/gs_l2_norm
mode: min
save_last: false
auto_insert_metric_name: false
save_top_k: ${mux:${denop_val}, 1, 0}
save_weights_only: false
every_n_train_steps: null
train_time_interval: null
every_n_epochs: null
save_on_train_epoch_end: null
model_checkpoint_last:
_target_: mldft.ml.callbacks.checkpoint.ModelCheckpointWithPermissions
dirpath: ${paths.output_dir}/checkpoints
filename: last_epoch_{epoch:03d}
monitor: epoch
mode: max
save_last: false
auto_insert_metric_name: false
verbose: false
save_top_k: 1
save_weights_only: false
every_n_train_steps: null
train_time_interval: null
every_n_epochs: null
save_on_train_epoch_end: null
model_summary:
_target_: mldft.ml.callbacks.SubModelSummary
max_depth: -1
path_in_model: net
rich_progress_bar:
_target_: lightning.pytorch.callbacks.RichProgressBar
print_overrides:
_target_: mldft.ml.callbacks.PrintOverrides
compact: false
target_pred_scatters:
_target_: mldft.ml.callbacks.image_logging.LogTargetPredScatters
with_atom_ref: auto
train_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
val_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
gradient_scatter:
_target_: mldft.ml.callbacks.image_logging.LogGradientScatter
train_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
val_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
distance_embeddings:
_target_: mldft.ml.callbacks.image_logging.LogDistanceEmbeddings
max_distance: 8.0
n_distances: 1000
train_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
val_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
molecule_mesh_logging:
log_initial_guess: false
log_gradient: true
log_random_basis_functions: false
_target_: mldft.ml.callbacks.mesh_logging.LogMolecule
train_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
val_timing:
_target_: mldft.ml.callbacks.timing.EveryIncreasingInterval
initial_interval: ${callbacks.interval}
custom_scalars:
_target_: mldft.ml.callbacks.custom_scalars.AddMetricAndLossCustomScalars
interval: 1000
logger:
tensorboard:
_target_: lightning.pytorch.loggers.tensorboard.TensorBoardLogger
save_dir: ${paths.output_dir}
max_queue: 10000
name: null
log_graph: false
default_hp_metric: false
prefix: ''
version: ''
trainer:
_target_: lightning.pytorch.trainer.Trainer
default_root_dir: ${paths.output_dir}
min_epochs: 1
max_epochs: 30
log_every_n_steps: 200
inference_mode: false
accelerator: auto
devices: 1
precision: 32
check_val_every_n_epoch: 1
deterministic: false
paths:
data_dir: ${oc.env:DFT_DATA}
log_dir: ${oc.env:DFT_MODELS}
output_dir: ${hydra:runtime.output_dir}
work_dir: ${hydra:runtime.cwd}
extras:
ignore_warnings: false
enforce_tags: true
print_config: true
print_defaults_tree:
group_color: cyan
guide_style: dim
hostname: compgpu14
save_code_backup: true
task_name: train
name: ''
tags:
- qmugs_bin0_qm9_perturbed_fock
- kin_plus_xc
- graphformer
validate_before_train: false
train: true
validate: false
denop_val: true
test: false
training_mode: null
run_path: null
ckpt_choice: null
seed: 1222233886
git:
sha: c01e5b2146ee1f735f11096617c3d80b759fa98e
branch: main
is_dirty: false