Global:
  label_names:
  - G
  do_train: true
  do_eval: false
  do_test: false
  graph_converter:
    __class_name__: FindPointsInSpheres
    __init_params__:
      cutoff: 4.0
      num_cpus: 10
Dataset:
  train:
    dataset:
      __class_name__: MP2018Dataset
      __init_params__:
        path: ./data/mp2018_train_60k/mp.2018.6.1_train.json
        property_names: ${Global.label_names}
        build_structure_cfg:
          format: cif_str
          num_cpus: 10
        build_graph_cfg: ${Global.graph_converter}
        cache_path: ./data/mp2018_train_60k_cache_find_points_in_spheres_cutoff_4/mp.2018.6.1_train
        transforms:
        - __class_name__: Log10
          __init_params__:
            apply_keys: G
      num_workers: 4
      use_shared_memory: false
    sampler:
      __class_name__: BatchSampler
      __init_params__:
        shuffle: true
        drop_last: true
        batch_size: 128
  val:
    dataset:
      __class_name__: MP2018Dataset
      __init_params__:
        path: ./data/mp2018_train_60k/mp.2018.6.1_val.json
        property_names: ${Global.label_names}
        build_structure_cfg:
          format: cif_str
          num_cpus: 10
        build_graph_cfg: ${Global.graph_converter}
        cache_path: ./data/mp2018_train_60k_cache_find_points_in_spheres_cutoff_4/mp.2018.6.1_val
        transforms:
        - __class_name__: Log10
          __init_params__:
            apply_keys: G
    sampler:
      __class_name__: BatchSampler
      __init_params__:
        shuffle: false
        drop_last: false
        batch_size: 128
  test:
    dataset:
      __class_name__: MP2018Dataset
      __init_params__:
        path: ./data/mp2018_train_60k/mp.2018.6.1_test.json
        property_names: ${Global.label_names}
        build_structure_cfg:
          format: cif_str
          num_cpus: 10
        build_graph_cfg: ${Global.graph_converter}
        cache_path: ./data/mp2018_train_60k_cache_find_points_in_spheres_cutoff_4/mp.2018.6.1_test
        transforms:
        - __class_name__: Log10
          __init_params__:
            apply_keys: G
    sampler:
      __class_name__: BatchSampler
      __init_params__:
        shuffle: false
        drop_last: false
        batch_size: 128
  transform:
    __class_name__: no_scaling
    __init_params__: {}
Model:
  __class_name__: MEGNetPlus
  __init_params__:
    dim_node_embedding: 16
    dim_edge_embedding: 100
    dim_state_embedding: 2
    nblocks: 3
    nlayers_set2set: 1
    niters_set2set: 2
    bond_expansion_cfg:
      rbf_type: Gaussian
      initial: 0.0
      final: 5.0
      num_centers: 100
      width: 0.5
    property_name: ${Global.label_names}
Trainer:
  max_epochs: 2000
  seed: 42
  output_dir: ./output/megnet_mp2018_train_60k_G_t_20250701_083900_s_42
  save_freq: 100
  log_freq: 20
  start_eval_epoch: 1
  eval_freq: 1
  pretrained_model_path: null
  pretrained_weight_name: null
  resume_from_checkpoint: null
  use_amp: false
  amp_level: O1
  eval_with_no_grad: true
  gradient_accumulation_steps: 1
  best_metric_indicator: eval_metric
  name_for_best_metric: G
  greater_is_better: false
  compute_metric_during_train: true
  metric_strategy_during_eval: epoch
  use_visualdl: false
  use_wandb: false
  use_tensorboard: false
Optimizer:
  __class_name__: Adam
  __init_params__:
    beta1: 0.9
    beta2: 0.999
    lr:
      __class_name__: Cosine
      __init_params__:
        learning_rate: 0.001
        eta_min: 0.0001
        by_epoch: true
Metric:
  G:
    __class_name__: paddle.nn.L1Loss
    __init_params__: {}
Predict:
  graph_converter: ${Global.graph_converter}
  eval_with_no_grad: true
  post_transforms:
  - __class_name__: PowerData
    __init_params__:
      exp: 10
      apply_keys: G
