├── .github └── workflows │ └── unittests.yml ├── .gitignore ├── .readthedocs.yaml ├── AUTHORS ├── LICENSE ├── MANIFEST.in ├── README.md ├── SDP.md ├── changelog.md ├── docs ├── Makefile ├── environment.yml ├── requirements.txt └── source │ ├── _static │ ├── custom.css │ ├── disjoint.png │ ├── icon.odg │ ├── icon.svg │ └── icon_old.svg │ ├── conf.py │ ├── data.ipynb │ ├── forces.ipynb │ ├── index.rst │ ├── installation.rst │ ├── intro.rst │ ├── kgcnn.backend.rst │ ├── kgcnn.crystal.periodic_table.rst │ ├── kgcnn.crystal.rst │ ├── kgcnn.data.datasets.rst │ ├── kgcnn.data.rst │ ├── kgcnn.data.transform.rst │ ├── kgcnn.data.transform.scaler.rst │ ├── kgcnn.graph.methods.rst │ ├── kgcnn.graph.rst │ ├── kgcnn.initializers.rst │ ├── kgcnn.io.rst │ ├── kgcnn.layers.rst │ ├── kgcnn.literature.AttentiveFP.rst │ ├── kgcnn.literature.CGCNN.rst │ ├── kgcnn.literature.CMPNN.rst │ ├── kgcnn.literature.DGIN.rst │ ├── kgcnn.literature.DMPNN.rst │ ├── kgcnn.literature.DimeNetPP.rst │ ├── kgcnn.literature.EGNN.rst │ ├── kgcnn.literature.GAT.rst │ ├── kgcnn.literature.GATv2.rst │ ├── kgcnn.literature.GCN.rst │ ├── kgcnn.literature.GIN.rst │ ├── kgcnn.literature.GNNExplain.rst │ ├── kgcnn.literature.GNNFilm.rst │ ├── kgcnn.literature.GraphSAGE.rst │ ├── kgcnn.literature.HDNNP2nd.rst │ ├── kgcnn.literature.HamNet.rst │ ├── kgcnn.literature.INorp.rst │ ├── kgcnn.literature.MAT.rst │ ├── kgcnn.literature.MEGAN.rst │ ├── kgcnn.literature.MXMNet.rst │ ├── kgcnn.literature.Megnet.rst │ ├── kgcnn.literature.MoGAT.rst │ ├── kgcnn.literature.NMPN.rst │ ├── kgcnn.literature.PAiNN.rst │ ├── kgcnn.literature.RGCN.rst │ ├── kgcnn.literature.Schnet.rst │ ├── kgcnn.literature.rGIN.rst │ ├── kgcnn.literature.rst │ ├── kgcnn.losses.rst │ ├── kgcnn.metrics.rst │ ├── kgcnn.models.rst │ ├── kgcnn.molecule.dynamics.rst │ ├── kgcnn.molecule.external.rst │ ├── kgcnn.molecule.rst │ ├── kgcnn.ops.rst │ ├── kgcnn.optimizers.rst │ ├── kgcnn.rst │ ├── kgcnn.training.rst │ ├── kgcnn.utils.rst │ ├── layers.ipynb │ ├── literature.ipynb │ ├── models.ipynb │ ├── modules.rst │ └── molecules.ipynb ├── kgcnn ├── __init__.py ├── backend │ ├── __init__.py │ ├── _jax.py │ ├── _numpy.py │ ├── _tensorflow.py │ └── _torch.py ├── crystal │ ├── __init__.py │ ├── base.py │ ├── graph_builder.py │ ├── periodic_table │ │ ├── __init__.py │ │ ├── periodic_table.csv │ │ └── periodic_table.py │ └── preprocessor.py ├── data │ ├── __init__.py │ ├── base.py │ ├── crystal.py │ ├── datasets │ │ ├── ClinToxDataset.py │ │ ├── CoraDataset.py │ │ ├── CoraLuDataset.py │ │ ├── ESOLDataset.py │ │ ├── FreeSolvDataset.py │ │ ├── GraphTUDataset2020.py │ │ ├── ISO17Dataset.py │ │ ├── LipopDataset.py │ │ ├── MD17Dataset.py │ │ ├── MD17RevisedDataset.py │ │ ├── MUTAGDataset.py │ │ ├── MatBenchDataset2020.py │ │ ├── MatProjectDielectricDataset.py │ │ ├── MatProjectEFormDataset.py │ │ ├── MatProjectGapDataset.py │ │ ├── MatProjectIsMetalDataset.py │ │ ├── MatProjectJdft2dDataset.py │ │ ├── MatProjectLogGVRHDataset.py │ │ ├── MatProjectLogKVRHDataset.py │ │ ├── MatProjectPerovskitesDataset.py │ │ ├── MatProjectPhononsDataset.py │ │ ├── MoleculeNetDataset2018.py │ │ ├── MutagenicityDataset.py │ │ ├── PROTEINSDataset.py │ │ ├── QM7Dataset.py │ │ ├── QM7bDataset.py │ │ ├── QM8Dataset.py │ │ ├── QM9Dataset.py │ │ ├── QM9MolNetDataset.py │ │ ├── SIDERDataset.py │ │ ├── Tox21MolNetDataset.py │ │ └── __init__.py │ ├── download.py │ ├── force.py │ ├── moleculenet.py │ ├── qm.py │ ├── serial.py │ ├── transform │ │ ├── __init__.py │ │ ├── base.py │ │ └── scaler │ │ │ ├── __init__.py │ │ │ ├── force.py │ │ │ ├── molecule.py │ │ │ ├── serial.py │ │ │ └── standard.py │ ├── tudataset.py │ └── utils.py ├── graph │ ├── __init__.py │ ├── base.py │ ├── methods │ │ ├── __init__.py │ │ ├── _adj.py │ │ ├── _geom.py │ │ └── _periodic.py │ ├── postprocessor.py │ ├── preprocessor.py │ └── serial.py ├── initializers │ ├── __init__.py │ └── initializers.py ├── io │ ├── __init__.py │ ├── file.py │ ├── graphlist.py │ └── loader.py ├── layers │ ├── __init__.py │ ├── activ.py │ ├── aggr.py │ ├── attention.py │ ├── casting.py │ ├── conv.py │ ├── gather.py │ ├── geom.py │ ├── message.py │ ├── mlp.py │ ├── modules.py │ ├── norm.py │ ├── polynom.py │ ├── pooling.py │ ├── relational.py │ ├── scale.py │ ├── set2set.py │ └── update.py ├── literature │ ├── AttentiveFP │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── CGCNN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── CMPNN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── DGIN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── DMPNN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── DimeNetPP │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── EGNN │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── GAT │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── GATv2 │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── GCN │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── GIN │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── GNNExplain │ │ ├── __init__.py │ │ └── _model.py │ ├── GNNFilm │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── GraphSAGE │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── HDNNP2nd │ │ ├── __init__.py │ │ ├── _acsf.py │ │ ├── _layers.py │ │ ├── _make.py │ │ ├── _model.py │ │ └── _wacsf.py │ ├── HamNet │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── INorp │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── MAT │ │ ├── __init__.py │ │ ├── _layers.py │ │ └── _make.py │ ├── MEGAN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── MXMNet │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── Megnet │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── MoGAT │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── NMPN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── PAiNN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py │ ├── RGCN │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── Schnet │ │ ├── __init__.py │ │ ├── _make.py │ │ └── _model.py │ ├── __init__.py │ └── rGIN │ │ ├── __init__.py │ │ ├── _layers.py │ │ ├── _make.py │ │ └── _model.py ├── losses │ ├── __init__.py │ └── losses.py ├── metrics │ ├── __init__.py │ ├── metrics.py │ └── utils.py ├── models │ ├── __init__.py │ ├── casting.py │ ├── force.py │ ├── multi.py │ ├── serial.py │ └── utils.py ├── molecule │ ├── __init__.py │ ├── base.py │ ├── convert.py │ ├── dynamics │ │ ├── __init__.py │ │ ├── ase_calc.py │ │ └── base.py │ ├── encoder.py │ ├── external │ │ ├── __init__.py │ │ └── ballloon.py │ ├── graph_babel.py │ ├── graph_rdkit.py │ ├── io.py │ ├── methods.py │ ├── preprocessor.py │ └── serial.py ├── ops │ ├── __init__.py │ ├── activ.py │ ├── axis.py │ ├── core.py │ └── scatter.py ├── optimizers │ ├── __init__.py │ └── optimizers.py ├── training │ ├── __init__.py │ ├── callbacks.py │ ├── history.py │ ├── hyper.py │ ├── schedule.py │ └── scheduler.py └── utils │ ├── __init__.py │ ├── devices.py │ ├── plots.py │ ├── serial.py │ └── tests.py ├── notebooks ├── README.md ├── example_transfer_learning.ipynb ├── graph_explanation │ ├── explain_GNNExplain_cora.ipynb │ ├── explain_GNNExplain_mutagenicity_1.ipynb │ ├── explain_GNNExplain_mutagenicity_2.ipynb │ └── explain_GNNExplain_mutagenicity_3.ipynb ├── showcase_energy_force_model.ipynb ├── showcase_hdnnp2nd_dipole.ipynb ├── tutorial_config_training.ipynb ├── tutorial_custom_crystal_dataset.ipynb ├── tutorial_custom_moleculenet.ipynb ├── tutorial_custom_qm_dataset.ipynb ├── tutorial_graph_dict.ipynb ├── tutorial_hyper_keras_tuner.ipynb ├── tutorial_hyper_optuna.ipynb ├── tutorial_jax_jit.ipynb ├── tutorial_model_loading_options.ipynb ├── tutorial_optimizer.ipynb ├── workflow_molecule_regression.ipynb └── workflow_qm_regression.ipynb ├── requirements.txt ├── setup.py ├── test ├── README.md ├── __init__.py ├── assets │ ├── README.md │ ├── bessel_basis_reference.npz │ ├── faulty_molecules.csv │ └── simple_molecules.csv ├── layers │ ├── __init__.py │ ├── aggr_test.py │ ├── casting_test.py │ └── gather_test.py ├── metrics │ ├── __init__.py │ └── metrics_test.py └── utils.py └── training ├── README.md ├── hyper ├── hyper_clintox.py ├── hyper_cora.py ├── hyper_cora_lu.py ├── hyper_esol.py ├── hyper_freesolv.py ├── hyper_iso17.py ├── hyper_lipop.py ├── hyper_md17.py ├── hyper_md17_revised.py ├── hyper_mp_dielectric.py ├── hyper_mp_e_form.py ├── hyper_mp_gap.py ├── hyper_mp_is_metal.py ├── hyper_mp_jdft2d.py ├── hyper_mp_log_gvrh.py ├── hyper_mp_log_kvrh.py ├── hyper_mp_perovskites.py ├── hyper_mp_phonons.py ├── hyper_mutag.py ├── hyper_mutagenicity.py ├── hyper_proteins.py ├── hyper_qm7.py ├── hyper_qm9_energies.py ├── hyper_qm9_orbitals.py ├── hyper_sider.py └── hyper_tox21mol.py ├── results ├── ClinToxDataset │ ├── DMPNN │ │ ├── DMPNN_ClinToxDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_ClinToxDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_ClinToxDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_ClinToxDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_ClinToxDataset_score.yaml │ │ └── GIN_hyper.json │ ├── GraphSAGE │ │ ├── GraphSAGE_ClinToxDataset_score.yaml │ │ └── GraphSAGE_hyper.json │ └── Schnet │ │ ├── Schnet_ClinToxDataset_score.yaml │ │ └── Schnet_hyper.json ├── CoraDataset │ ├── DMPNN │ │ ├── DMPNN_CoraDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_CoraDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_CoraDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_CoraDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_CoraDataset_score.yaml │ │ └── GIN_hyper.json │ └── GraphSAGE │ │ ├── GraphSAGE_CoraDataset_score.yaml │ │ └── GraphSAGE_hyper.json ├── CoraLuDataset │ ├── DMPNN │ │ ├── DMPNN_CoraLuDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_CoraLuDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_CoraLuDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_CoraLuDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_CoraLuDataset_score.yaml │ │ └── GIN_hyper.json │ └── GraphSAGE │ │ ├── GraphSAGE_CoraLuDataset_score.yaml │ │ └── GraphSAGE_hyper.json ├── ESOLDataset │ ├── AttentiveFP │ │ ├── AttentiveFP_ESOLDataset_score.yaml │ │ └── AttentiveFP_hyper.json │ ├── CMPNN │ │ ├── CMPNN_ESOLDataset_score.yaml │ │ └── CMPNN_hyper.json │ ├── DGIN │ │ ├── DGIN_ESOLDataset_score.yaml │ │ └── DGIN_hyper.json │ ├── DMPNN │ │ ├── DMPNN_ESOLDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── EGNN │ │ ├── EGNN_ESOLDataset_score.yaml │ │ └── EGNN_hyper.json │ ├── GAT │ │ ├── GAT_ESOLDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_ESOLDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_ESOLDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_ESOLDataset_score.yaml │ │ └── GIN_hyper.json │ ├── GNNFilm │ │ ├── GNNFilm_ESOLDataset_score.yaml │ │ └── GNNFilm_hyper.json │ ├── GraphSAGE │ │ ├── GraphSAGE_ESOLDataset_score.yaml │ │ └── GraphSAGE_hyper.json │ ├── HDNNP2nd │ │ ├── HDNNP2nd_ESOLDataset_score.yaml │ │ └── HDNNP2nd_hyper.json │ ├── HamNet │ │ ├── HamNet_ESOLDataset_score.yaml │ │ └── HamNet_hyper.json │ ├── INorp │ │ ├── INorp_ESOLDataset_score.yaml │ │ └── INorp_hyper.json │ ├── MAT │ │ ├── MAT_ESOLDataset_score.yaml │ │ └── MAT_hyper.json │ ├── MEGAN │ │ ├── MEGAN_ESOLDataset_score.yaml │ │ └── MEGAN_hyper.json │ ├── MXMNet │ │ ├── MXMNet_ESOLDataset_score.yaml │ │ └── MXMNet_hyper.json │ ├── Megnet │ │ ├── Megnet_ESOLDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── MoGAT │ │ ├── MoGAT_ESOLDataset_score.yaml │ │ └── MoGAT_hyper.json │ ├── NMPN │ │ ├── NMPN_ESOLDataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN │ │ ├── PAiNN_ESOLDataset_score.yaml │ │ └── PAiNN_hyper.json │ ├── RGCN │ │ ├── RGCN_ESOLDataset_score.yaml │ │ └── RGCN_hyper.json │ ├── Schnet │ │ ├── Schnet_ESOLDataset_score.yaml │ │ └── Schnet_hyper.json │ └── rGIN │ │ ├── rGIN_ESOLDataset_score.yaml │ │ └── rGIN_hyper.json ├── FreeSolvDataset │ ├── CMPNN │ │ ├── CMPNN_FreeSolvDataset_score.yaml │ │ └── CMPNN_hyper.json │ ├── DGIN │ │ ├── DGIN_FreeSolvDataset_score.yaml │ │ └── DGIN_hyper.json │ ├── DMPNN │ │ ├── DMPNN_FreeSolvDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── DimeNetPP │ │ ├── DimeNetPP_FreeSolvDataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── EGNN │ │ ├── EGNN_FreeSolvDataset_score.yaml │ │ └── EGNN_hyper.json │ ├── GAT │ │ ├── GAT_FreeSolvDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_FreeSolvDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_FreeSolvDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_FreeSolvDataset_score.yaml │ │ └── GIN_hyper.json │ ├── GNNFilm │ │ ├── GNNFilm_FreeSolvDataset_score.yaml │ │ └── GNNFilm_hyper.json │ ├── GraphSAGE │ │ ├── GraphSAGE_FreeSolvDataset_score.yaml │ │ └── GraphSAGE_hyper.json │ ├── HDNNP2nd │ │ ├── HDNNP2nd_FreeSolvDataset_score.yaml │ │ └── HDNNP2nd_hyper.json │ ├── HamNet │ │ ├── HamNet_FreeSolvDataset_score.yaml │ │ └── HamNet_hyper.json │ ├── INorp │ │ ├── INorp_FreeSolvDataset_score.yaml │ │ └── INorp_hyper.json │ ├── MAT │ │ ├── MAT_FreeSolvDataset_score.yaml │ │ └── MAT_hyper.json │ ├── MEGAN │ │ ├── MEGAN_FreeSolvDataset_score.yaml │ │ └── MEGAN_hyper.json │ ├── MXMNet │ │ ├── MXMNet_FreeSolvDataset_score.yaml │ │ └── MXMNet_hyper.json │ ├── Megnet │ │ ├── Megnet_FreeSolvDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── MoGAT │ │ ├── MoGAT_FreeSolvDataset_score.yaml │ │ └── MoGAT_hyper.json │ ├── RGCN │ │ ├── RGCN_FreeSolvDataset_score.yaml │ │ └── RGCN_hyper.json │ ├── Schnet │ │ ├── Schnet_FreeSolvDataset_score.yaml │ │ └── Schnet_hyper.json │ └── rGIN │ │ ├── rGIN_FreeSolvDataset_score.yaml │ │ └── rGIN_hyper.json ├── ISO17Dataset │ └── Schnet_EnergyForceModel │ │ ├── Schnet_ISO17Dataset_score_test_within.yaml │ │ └── Schnet_hyper_test_within.json ├── LipopDataset │ ├── DMPNN │ │ ├── DMPNN_LipopDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_LipopDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_LipopDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_LipopDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_LipopDataset_score.yaml │ │ └── GIN_hyper.json │ ├── GraphSAGE │ │ ├── GraphSAGE_LipopDataset_score.yaml │ │ └── GraphSAGE_hyper.json │ └── Schnet │ │ ├── Schnet_LipopDataset_score.yaml │ │ └── Schnet_hyper.json ├── MD17Dataset │ ├── PAiNN_EnergyForceModel │ │ ├── PAiNN_MD17Dataset_score_aspirin_ccsd.yaml │ │ ├── PAiNN_MD17Dataset_score_benzene_ccsd_t.yaml │ │ ├── PAiNN_MD17Dataset_score_ethanol_ccsd_t.yaml │ │ ├── PAiNN_MD17Dataset_score_malonaldehyde_ccsd_t.yaml │ │ ├── PAiNN_MD17Dataset_score_toluene_ccsd_t.yaml │ │ ├── PAiNN_hyper_aspirin_ccsd.json │ │ ├── PAiNN_hyper_benzene_ccsd_t.json │ │ ├── PAiNN_hyper_ethanol_ccsd_t.json │ │ ├── PAiNN_hyper_malonaldehyde_ccsd_t.json │ │ └── PAiNN_hyper_toluene_ccsd_t.json │ └── Schnet_EnergyForceModel │ │ ├── Schnet_MD17Dataset_score_aspirin_ccsd.yaml │ │ ├── Schnet_MD17Dataset_score_benzene_ccsd_t.yaml │ │ ├── Schnet_MD17Dataset_score_ethanol_ccsd_t.yaml │ │ ├── Schnet_MD17Dataset_score_malonaldehyde_ccsd_t.yaml │ │ ├── Schnet_MD17Dataset_score_toluene_ccsd_t.yaml │ │ ├── Schnet_hyper_aspirin_ccsd.json │ │ ├── Schnet_hyper_benzene_ccsd_t.json │ │ ├── Schnet_hyper_ethanol_ccsd_t.json │ │ ├── Schnet_hyper_malonaldehyde_ccsd_t.json │ │ └── Schnet_hyper_toluene_ccsd_t.json ├── MD17RevisedDataset │ └── Schnet_EnergyForceModel │ │ ├── Schnet_MD17RevisedDataset_score_aspirin.yaml │ │ ├── Schnet_MD17RevisedDataset_score_benzene.yaml │ │ ├── Schnet_MD17RevisedDataset_score_ethanol.yaml │ │ ├── Schnet_MD17RevisedDataset_score_malonaldehyde.yaml │ │ ├── Schnet_MD17RevisedDataset_score_toluene.yaml │ │ ├── Schnet_hyper_aspirin.json │ │ ├── Schnet_hyper_benzene.json │ │ ├── Schnet_hyper_ethanol.json │ │ ├── Schnet_hyper_malonaldehyde.json │ │ └── Schnet_hyper_toluene.json ├── MUTAGDataset │ ├── DMPNN │ │ ├── DMPNN_MUTAGDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_MUTAGDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_MUTAGDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_MUTAGDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_MUTAGDataset_score.yaml │ │ └── GIN_hyper.json │ └── GraphSAGE │ │ ├── GraphSAGE_MUTAGDataset_score.yaml │ │ └── GraphSAGE_hyper.json ├── MatProjectDielectricDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectDielectricDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── DimeNetPP_make_crystal_model │ │ ├── DimeNetPP_MatProjectDielectricDataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectDielectricDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── NMPN_make_crystal_model │ │ ├── NMPN_MatProjectDielectricDataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectDielectricDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectDielectricDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectEFormDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectEFormDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectEFormDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectEFormDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectEFormDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectGapDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectGapDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectGapDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectGapDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectGapDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectIsMetalDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectIsMetalDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectIsMetalDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectIsMetalDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectIsMetalDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectJdft2dDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectJdft2dDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── DimeNetPP_make_crystal_model │ │ ├── DimeNetPP_MatProjectJdft2dDataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectJdft2dDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── NMPN_make_crystal_model │ │ ├── NMPN_MatProjectJdft2dDataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectJdft2dDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectJdft2dDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectLogGVRHDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectLogGVRHDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── DimeNetPP_make_crystal_model │ │ ├── DimeNetPP_MatProjectLogGVRHDataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectLogGVRHDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── NMPN_make_crystal_model │ │ ├── NMPN_MatProjectLogGVRHDataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectLogGVRHDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectLogGVRHDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectLogKVRHDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectLogKVRHDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── DimeNetPP_make_crystal_model │ │ ├── DimeNetPP_MatProjectLogKVRHDataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectLogKVRHDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── NMPN_make_crystal_model │ │ ├── NMPN_MatProjectLogKVRHDataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectLogKVRHDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectLogKVRHDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectPerovskitesDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectPerovskitesDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── DimeNetPP_make_crystal_model │ │ ├── DimeNetPP_MatProjectPerovskitesDataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectPerovskitesDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── NMPN_make_crystal_model │ │ ├── NMPN_MatProjectPerovskitesDataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectPerovskitesDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectPerovskitesDataset_score.yaml │ │ └── Schnet_hyper.json ├── MatProjectPhononsDataset │ ├── CGCNN_make_crystal_model │ │ ├── CGCNN_MatProjectPhononsDataset_score.yaml │ │ └── CGCNN_hyper.json │ ├── DimeNetPP_make_crystal_model │ │ ├── DimeNetPP_MatProjectPhononsDataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── Megnet_make_crystal_model │ │ ├── Megnet_MatProjectPhononsDataset_score.yaml │ │ └── Megnet_hyper.json │ ├── NMPN_make_crystal_model │ │ ├── NMPN_MatProjectPhononsDataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN_make_crystal_model │ │ ├── PAiNN_MatProjectPhononsDataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet_make_crystal_model │ │ ├── Schnet_MatProjectPhononsDataset_score.yaml │ │ └── Schnet_hyper.json ├── MutagenicityDataset │ ├── DMPNN │ │ ├── DMPNN_MutagenicityDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_MutagenicityDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_MutagenicityDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_MutagenicityDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_MutagenicityDataset_score.yaml │ │ └── GIN_hyper.json │ └── GraphSAGE │ │ ├── GraphSAGE_MutagenicityDataset_score.yaml │ │ └── GraphSAGE_hyper.json ├── PROTEINSDataset │ ├── DMPNN │ │ ├── DMPNN_PROTEINSDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_PROTEINSDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_PROTEINSDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GCN │ │ ├── GCN_PROTEINSDataset_score.yaml │ │ └── GCN_hyper.json │ ├── GIN │ │ ├── GIN_PROTEINSDataset_score.yaml │ │ └── GIN_hyper.json │ └── GraphSAGE │ │ ├── GraphSAGE_PROTEINSDataset_score.yaml │ │ └── GraphSAGE_hyper.json ├── QM7Dataset │ ├── DimeNetPP │ │ ├── DimeNetPP_QM7Dataset_score.yaml │ │ └── DimeNetPP_hyper.json │ ├── EGNN │ │ ├── EGNN_QM7Dataset_score.yaml │ │ └── EGNN_hyper.json │ ├── MXMNet │ │ ├── MXMNet_QM7Dataset_score.yaml │ │ └── MXMNet_hyper.json │ ├── Megnet │ │ ├── Megnet_QM7Dataset_score.yaml │ │ └── Megnet_hyper.json │ ├── NMPN │ │ ├── NMPN_QM7Dataset_score.yaml │ │ └── NMPN_hyper.json │ ├── PAiNN │ │ ├── PAiNN_QM7Dataset_score.yaml │ │ └── PAiNN_hyper.json │ └── Schnet │ │ ├── Schnet_QM7Dataset_score.yaml │ │ └── Schnet_hyper.json ├── QM9Dataset │ ├── DimeNetPP │ │ ├── DimeNetPP_QM9Dataset_score_G.yaml │ │ ├── DimeNetPP_QM9Dataset_score_H.yaml │ │ ├── DimeNetPP_QM9Dataset_score_HOMO.yaml │ │ ├── DimeNetPP_QM9Dataset_score_LUMO.yaml │ │ ├── DimeNetPP_QM9Dataset_score_U0.yaml │ │ ├── DimeNetPP_hyper_G.json │ │ ├── DimeNetPP_hyper_H.json │ │ ├── DimeNetPP_hyper_HOMO.json │ │ ├── DimeNetPP_hyper_LUMO.json │ │ └── DimeNetPP_hyper_U0.json │ ├── EGNN │ │ ├── EGNN_QM9Dataset_score_G.yaml │ │ ├── EGNN_QM9Dataset_score_H.yaml │ │ ├── EGNN_QM9Dataset_score_HOMO.yaml │ │ ├── EGNN_QM9Dataset_score_LUMO.yaml │ │ ├── EGNN_QM9Dataset_score_U0.yaml │ │ ├── EGNN_hyper_G.json │ │ ├── EGNN_hyper_H.json │ │ ├── EGNN_hyper_HOMO.json │ │ ├── EGNN_hyper_LUMO.json │ │ └── EGNN_hyper_U0.json │ ├── MXMNet │ │ ├── MXMNet_QM9Dataset_score_G.yaml │ │ ├── MXMNet_QM9Dataset_score_H.yaml │ │ ├── MXMNet_QM9Dataset_score_HOMO.yaml │ │ ├── MXMNet_QM9Dataset_score_LUMO.yaml │ │ ├── MXMNet_QM9Dataset_score_U0.yaml │ │ ├── MXMNet_hyper_G.json │ │ ├── MXMNet_hyper_H.json │ │ ├── MXMNet_hyper_HOMO.json │ │ ├── MXMNet_hyper_LUMO.json │ │ └── MXMNet_hyper_U0.json │ ├── Megnet │ │ ├── Megnet_QM9Dataset_score_G.yaml │ │ ├── Megnet_QM9Dataset_score_H.yaml │ │ ├── Megnet_QM9Dataset_score_HOMO.yaml │ │ ├── Megnet_QM9Dataset_score_LUMO.yaml │ │ ├── Megnet_QM9Dataset_score_U0.yaml │ │ ├── Megnet_hyper_G.json │ │ ├── Megnet_hyper_H.json │ │ ├── Megnet_hyper_HOMO.json │ │ ├── Megnet_hyper_LUMO.json │ │ └── Megnet_hyper_U0.json │ ├── NMPN │ │ ├── NMPN_QM9Dataset_score_G.yaml │ │ ├── NMPN_QM9Dataset_score_H.yaml │ │ ├── NMPN_QM9Dataset_score_HOMO.yaml │ │ ├── NMPN_QM9Dataset_score_LUMO.yaml │ │ ├── NMPN_QM9Dataset_score_U0.yaml │ │ ├── NMPN_hyper_G.json │ │ ├── NMPN_hyper_H.json │ │ ├── NMPN_hyper_HOMO.json │ │ ├── NMPN_hyper_LUMO.json │ │ └── NMPN_hyper_U0.json │ ├── PAiNN │ │ ├── PAiNN_QM9Dataset_score_G.yaml │ │ ├── PAiNN_QM9Dataset_score_H.yaml │ │ ├── PAiNN_QM9Dataset_score_HOMO.yaml │ │ ├── PAiNN_QM9Dataset_score_LUMO.yaml │ │ ├── PAiNN_QM9Dataset_score_U0.yaml │ │ ├── PAiNN_hyper_G.json │ │ ├── PAiNN_hyper_H.json │ │ ├── PAiNN_hyper_HOMO.json │ │ ├── PAiNN_hyper_LUMO.json │ │ └── PAiNN_hyper_U0.json │ └── Schnet │ │ ├── Schnet_QM9Dataset_score_G.yaml │ │ ├── Schnet_QM9Dataset_score_H.yaml │ │ ├── Schnet_QM9Dataset_score_HOMO.yaml │ │ ├── Schnet_QM9Dataset_score_LUMO.yaml │ │ ├── Schnet_QM9Dataset_score_U.yaml │ │ ├── Schnet_QM9Dataset_score_U0.yaml │ │ ├── Schnet_hyper_G.json │ │ ├── Schnet_hyper_H.json │ │ ├── Schnet_hyper_HOMO.json │ │ ├── Schnet_hyper_LUMO.json │ │ ├── Schnet_hyper_U.json │ │ └── Schnet_hyper_U0.json ├── README.md ├── README_min_max.md ├── SIDERDataset │ ├── DMPNN │ │ ├── DMPNN_SIDERDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── GAT │ │ ├── GAT_SIDERDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_SIDERDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GIN │ │ ├── GIN_SIDERDataset_score.yaml │ │ └── GIN_hyper.json │ ├── GraphSAGE │ │ ├── GraphSAGE_SIDERDataset_score.yaml │ │ └── GraphSAGE_hyper.json │ └── Schnet │ │ ├── Schnet_SIDERDataset_score.yaml │ │ └── Schnet_hyper.json ├── Tox21MolNetDataset │ ├── DMPNN │ │ ├── DMPNN_Tox21MolNetDataset_score.yaml │ │ └── DMPNN_hyper.json │ ├── EGNN │ │ ├── EGNN_Tox21MolNetDataset_score.yaml │ │ └── EGNN_hyper.json │ ├── GAT │ │ ├── GAT_Tox21MolNetDataset_score.yaml │ │ └── GAT_hyper.json │ ├── GATv2 │ │ ├── GATv2_Tox21MolNetDataset_score.yaml │ │ └── GATv2_hyper.json │ ├── GIN │ │ ├── GIN_Tox21MolNetDataset_score.yaml │ │ └── GIN_hyper.json │ ├── GraphSAGE │ │ ├── GraphSAGE_Tox21MolNetDataset_score.yaml │ │ └── GraphSAGE_hyper.json │ └── Schnet │ │ ├── Schnet_Tox21MolNetDataset_score.yaml │ │ └── Schnet_hyper.json └── summary.py ├── train_force.py ├── train_graph.py └── train_node.py /.github/workflows/unittests.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a single version of Python 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions 3 | 4 | name: kgcnn_unit_tests 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Set up Python 3.9 17 | uses: actions/setup-python@v2 18 | with: 19 | # Semantic version range syntax or exact version of a Python version 20 | python-version: '3.9' 21 | # Optional - x64 or x86 architecture, defaults to x64 22 | architecture: 'x64' 23 | # You can test your matrix by printing the current Python version 24 | - name: Display Python version 25 | run: python -c "import sys; print(sys.version)" 26 | - name: Install dependencies 27 | run: | 28 | python -m pip install --upgrade pip setuptools wheel 29 | pip install -r requirements.txt 30 | - name: Run unit tests 31 | run: | 32 | python -m unittest discover 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.mat 3 | *.txt 4 | *.zip 5 | /training/results/*/*/*.npz 6 | /training/results/*/*/scaler*.npz 7 | /training/results/*/*/*.pickle 8 | /training/results/*/*/*.png 9 | /training/results/*/*/scaler_* 10 | /training/results/*/*/*.keras 11 | /training/results/*/*/scaler_*.json 12 | /training/results/*/*/*.weights.h5 13 | /develop/ 14 | build 15 | dist 16 | kgcnn.egg-info 17 | /legacy/ 18 | /training/.ipynb_checkpoints/ 19 | /training/results/*/*/model*/* 20 | /notebooks/ExampleMol/ 21 | /notebooks/ExampleMol/* 22 | /notebooks/ExampleQM/* 23 | /notebooks/ExampleQM 24 | /notebooks/ExampleCrystal 25 | /notebooks/ExampleCrystal/* 26 | /notebooks/kt_dmpnn 27 | /notebooks/kt_dmpnn/* 28 | /notebooks/gcn_explain_*.png 29 | /notebooks/.ipynb_checkpoints 30 | /notebooks/graph_explanation/.ipynb_checkpoints 31 | /notebooks/docs/.ipynb_checkpoints/ 32 | /notebooks/docs/Example.kgcnn.pickle 33 | /docs/source/.ipynb_checkpoints/ 34 | /docs/source/Dataset/ 35 | /docs/source/Example.kgcnn.pickle 36 | /notebooks/graph_explanation/gcn_explain_loss_cora.png 37 | /notebooks/graph_explanation/gcn_explain_mutag.png 38 | /notebooks/graph_explanation/gcn_explain_mutag_2.png 39 | /notebooks/graph_explanation/gcn_explain_mutag_3.png 40 | /docs/source/DatasetQM/ 41 | /docs/source/DatasetTUD/ 42 | /docs/source/DatasetMol/ 43 | /docs/source/DatasetCrystal/ 44 | /docs/source/model_energy_force/ 45 | __pycache__ 46 | /notebooks/qm7/ 47 | /notebooks/Schnet_qm7_loss.png 48 | /notebooks/esol/ 49 | /notebooks/DMPNN_ESOL_predict.png 50 | /notebooks/DMPNN_esol_loss.png 51 | /docs/source/GIN_ESOL_predict.png 52 | /docs/source/GIN_esol_loss.png 53 | /notebooks/HDNNP2nd_freesolv_loss.png 54 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yaml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | build: 9 | os: ubuntu-22.04 10 | tools: 11 | python: "miniconda3-4.7" 12 | 13 | # Build documentation in the docs/ directory with Sphinx 14 | sphinx: 15 | configuration: docs/source/conf.py 16 | fail_on_warning: false 17 | 18 | conda: 19 | environment: docs/environment.yml 20 | 21 | # Optionally set the version of Python and requirements required to build your docs 22 | python: 23 | install: 24 | - requirements: docs/requirements.txt 25 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | List of contributors to kgcnn modules. 2 | 3 | - GNNExplainer module by robinruff 4 | - DGIN by thegodone 5 | - rGIN by thegodone 6 | - MEGAN by the16thpythonist 7 | - MoGAT by thegodone -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 aimat-lab 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include kgcnn *.py *.json *.yaml *.md *.csv -------------------------------------------------------------------------------- /SDP.md: -------------------------------------------------------------------------------- 1 | Software Development Plan (SDP) 2 | 3 | * [ ] Add GemNet from original implementation. 4 | * [x] Make flexible charge option in ``kgcnn.molecule.convert`` . 5 | * [ ] Test and improve code for ``kgcnn.crystal`` . 6 | * [ ] Make pretty loop update in `kgcnn.datasets` . 7 | * [x] Rework and simplify training scripts. 8 | * [x] Add graph preprocessor from standard dictionary scheme also for ``crystal`` and `molecule` . 9 | * [x] Rework and clean base layers. 10 | * [ ] Add a properly designed transformer layer in ``kgcnn.layers`` . 11 | * [ ] Add an element-wise loader for ``Graphlist`` apart from tensor files. Must change dataformat for standard save. 12 | * [x] Make a ``tf_dataset()`` function to return a generator dataset from `Graphlist` . 13 | * [ ] Add ``JARVISDataset`` . There is already a (yet not fully) port for `kgcnn` . 14 | * [ ] Add package wide Logger Level to change. 15 | * [x] Training scripts need all seed for maximum reproducibility. -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = kgcnn 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/environment.yml: -------------------------------------------------------------------------------- 1 | name: rtd39 2 | channels: 3 | - conda-forge 4 | - defaults 5 | dependencies: 6 | - python=3.9 7 | - openbabel=3.1.1 8 | - mock 9 | - pillow 10 | - sphinx==3.4.3 11 | - sphinx_rtd_theme 12 | - pip>=20.1 # pip is needed as dependency 13 | - pandoc 14 | - pip: 15 | - keras>=3.0.0 16 | - tensorflow-cpu~=2.16.1 # Only need tensorflow for docs 17 | - jinja2==3.0.3 18 | - numpy 19 | - scipy 20 | - matplotlib 21 | - pandas 22 | - scikit-learn 23 | - pyyaml 24 | - rdkit # Or via channels rdkit and conda rdkit 25 | - pymatgen 26 | - pyxtal 27 | - ase 28 | - ipython 29 | - nbsphinx 30 | - click 31 | - pyxtal 32 | - dm-tree>=0.1.8 -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | keras>=3.0.0 2 | tensorflow-cpu~=2.16.1 3 | sphinx==3.4.3 4 | sphinx_rtd_theme 5 | jinja2==3.0.0 6 | numpy 7 | scipy 8 | matplotlib 9 | pandas 10 | scikit-learn 11 | rdkit 12 | pyyaml 13 | pymatgen 14 | ase 15 | nbsphinx 16 | ipykernel 17 | ipython 18 | pyxtal 19 | dm-tree>=0.1.8 -------------------------------------------------------------------------------- /docs/source/_static/custom.css: -------------------------------------------------------------------------------- 1 | .wy-nav-content { 2 | max-width: 90% !important; 3 | } 4 | 5 | .wy-side-nav-search { 6 | /* GhostWhite */ 7 | background: #F8F8FF; 8 | } 9 | 10 | .wy-side-nav-search > div.version { 11 | color: black; 12 | } 13 | -------------------------------------------------------------------------------- /docs/source/_static/disjoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/docs/source/_static/disjoint.png -------------------------------------------------------------------------------- /docs/source/_static/icon.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/docs/source/_static/icon.odg -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. kgcnn documentation master file, created by 2 | sphinx-quickstart on Mon Aug 31 14:18:50 2020. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | General Information 7 | =================================== 8 | 9 | The package in `kgcnn `__ contains several layer classes to build up graph convolution models in 10 | Keras with Tensorflow, PyTorch or Jax as backend. Some models are given as an example in literature. 11 | Focus of kgcnn is (batched) graph learning for molecules **kgcnn.molecule** and materials **kgcnn.crystal**. 12 | Below you can find explanations and information on how to use `kgcnn `__ . 13 | See `Reference` under `Package Content` for code documentation. 14 | 15 | .. toctree:: 16 | :maxdepth: 3 17 | :caption: General: 18 | 19 | intro 20 | installation 21 | data.ipynb 22 | models.ipynb 23 | layers.ipynb 24 | literature.ipynb 25 | molecules.ipynb 26 | forces.ipynb 27 | 28 | 29 | Package Content 30 | =================================== 31 | 32 | .. toctree:: 33 | :maxdepth: 3 34 | :caption: Reference: 35 | 36 | kgcnn 37 | 38 | Indices and tables 39 | ================== 40 | 41 | * :ref:`genindex` 42 | * :ref:`modindex` 43 | * :ref:`search` 44 | -------------------------------------------------------------------------------- /docs/source/installation.rst: -------------------------------------------------------------------------------- 1 | .. _installation: 2 | :maxdepth: 3 3 | 4 | Installation 5 | ============ 6 | 7 | Clone repository https://github.com/aimat-lab/gcnn_keras and install with editable mode 8 | or latest release via `Python Package Index `_ :: 9 | 10 | pip install kgcnn 11 | 12 | 13 | Standard python package requirements are installed automatically. 14 | However, you must make sure to install the GPU/TPU acceleration for the backend of your choice. 15 | For example, to have proper GPU support, make sure that the installed ``tensorflow`` version matches your system requirements. 16 | Moreover, installed `GPU drivers `_ and `CUDA `_ and `cuDNN `_ versions must match. 17 | A list of verified version combinations for tensorflow can be found here: https://www.tensorflow.org/install/source#gpu . 18 | -------------------------------------------------------------------------------- /docs/source/kgcnn.backend.rst: -------------------------------------------------------------------------------- 1 | kgcnn.backend package 2 | ===================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.backend 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.crystal.periodic_table.rst: -------------------------------------------------------------------------------- 1 | kgcnn.crystal.periodic\_table package 2 | ===================================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.crystal.periodic\_table.periodic\_table module 8 | ---------------------------------------------------- 9 | 10 | .. automodule:: kgcnn.crystal.periodic_table.periodic_table 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: kgcnn.crystal.periodic_table 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/kgcnn.crystal.rst: -------------------------------------------------------------------------------- 1 | kgcnn.crystal package 2 | ===================== 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | kgcnn.crystal.periodic_table 11 | 12 | Submodules 13 | ---------- 14 | 15 | kgcnn.crystal.base module 16 | ------------------------- 17 | 18 | .. automodule:: kgcnn.crystal.base 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.crystal.graph\_builder module 24 | ----------------------------------- 25 | 26 | .. automodule:: kgcnn.crystal.graph_builder 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | kgcnn.crystal.preprocessor module 32 | --------------------------------- 33 | 34 | .. automodule:: kgcnn.crystal.preprocessor 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | Module contents 40 | --------------- 41 | 42 | .. automodule:: kgcnn.crystal 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | -------------------------------------------------------------------------------- /docs/source/kgcnn.data.transform.rst: -------------------------------------------------------------------------------- 1 | kgcnn.data.transform package 2 | ============================ 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | kgcnn.data.transform.scaler 11 | 12 | Submodules 13 | ---------- 14 | 15 | kgcnn.data.transform.base module 16 | -------------------------------- 17 | 18 | .. automodule:: kgcnn.data.transform.base 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | Module contents 24 | --------------- 25 | 26 | .. automodule:: kgcnn.data.transform 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | -------------------------------------------------------------------------------- /docs/source/kgcnn.data.transform.scaler.rst: -------------------------------------------------------------------------------- 1 | kgcnn.data.transform.scaler package 2 | =================================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.data.transform.scaler.force module 8 | ---------------------------------------- 9 | 10 | .. automodule:: kgcnn.data.transform.scaler.force 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.data.transform.scaler.molecule module 16 | ------------------------------------------- 17 | 18 | .. automodule:: kgcnn.data.transform.scaler.molecule 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.data.transform.scaler.serial module 24 | ----------------------------------------- 25 | 26 | .. automodule:: kgcnn.data.transform.scaler.serial 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | kgcnn.data.transform.scaler.standard module 32 | ------------------------------------------- 33 | 34 | .. automodule:: kgcnn.data.transform.scaler.standard 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | Module contents 40 | --------------- 41 | 42 | .. automodule:: kgcnn.data.transform.scaler 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | -------------------------------------------------------------------------------- /docs/source/kgcnn.graph.methods.rst: -------------------------------------------------------------------------------- 1 | kgcnn.graph.methods package 2 | =========================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.graph.methods 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.graph.rst: -------------------------------------------------------------------------------- 1 | kgcnn.graph package 2 | =================== 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | kgcnn.graph.methods 11 | 12 | Submodules 13 | ---------- 14 | 15 | kgcnn.graph.base module 16 | ----------------------- 17 | 18 | .. automodule:: kgcnn.graph.base 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.graph.postprocessor module 24 | -------------------------------- 25 | 26 | .. automodule:: kgcnn.graph.postprocessor 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | kgcnn.graph.preprocessor module 32 | ------------------------------- 33 | 34 | .. automodule:: kgcnn.graph.preprocessor 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | kgcnn.graph.serial module 40 | ------------------------- 41 | 42 | .. automodule:: kgcnn.graph.serial 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | 47 | Module contents 48 | --------------- 49 | 50 | .. automodule:: kgcnn.graph 51 | :members: 52 | :undoc-members: 53 | :show-inheritance: 54 | -------------------------------------------------------------------------------- /docs/source/kgcnn.initializers.rst: -------------------------------------------------------------------------------- 1 | kgcnn.initializers package 2 | ========================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.initializers.initializers module 8 | -------------------------------------- 9 | 10 | .. automodule:: kgcnn.initializers.initializers 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: kgcnn.initializers 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/kgcnn.io.rst: -------------------------------------------------------------------------------- 1 | kgcnn.io package 2 | ================ 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.io.file module 8 | -------------------- 9 | 10 | .. automodule:: kgcnn.io.file 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.io.graphlist module 16 | ------------------------- 17 | 18 | .. automodule:: kgcnn.io.graphlist 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.io.loader module 24 | ---------------------- 25 | 26 | .. automodule:: kgcnn.io.loader 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | Module contents 32 | --------------- 33 | 34 | .. automodule:: kgcnn.io 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.AttentiveFP.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.AttentiveFP package 2 | ==================================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.AttentiveFP 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.CGCNN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.CGCNN package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.CGCNN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.CMPNN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.CMPNN package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.CMPNN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.DGIN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.DGIN package 2 | ============================= 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.DGIN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.DMPNN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.DMPNN package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.DMPNN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.DimeNetPP.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.DimeNetPP package 2 | ================================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.DimeNetPP 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.EGNN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.EGNN package 2 | ============================= 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.EGNN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.GAT.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.GAT package 2 | ============================ 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.GAT 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.GATv2.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.GATv2 package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.GATv2 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.GCN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.GCN package 2 | ============================ 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.GCN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.GIN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.GIN package 2 | ============================ 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.GIN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.GNNExplain.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.GNNExplain package 2 | =================================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.GNNExplain 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.GNNFilm.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.GNNFilm package 2 | ================================ 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.GNNFilm 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.GraphSAGE.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.GraphSAGE package 2 | ================================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.GraphSAGE 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.HDNNP2nd.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.HDNNP2nd package 2 | ================================= 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.HDNNP2nd 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.HamNet.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.HamNet package 2 | =============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.HamNet 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.INorp.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.INorp package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.INorp 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.MAT.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.MAT package 2 | ============================ 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.MAT 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.MEGAN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.MEGAN package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.MEGAN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.MXMNet.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.MXMNet package 2 | =============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.MXMNet 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.Megnet.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.Megnet package 2 | =============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.Megnet 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.MoGAT.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.MoGAT package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.MoGAT 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.NMPN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.NMPN package 2 | ============================= 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.NMPN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.PAiNN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.PAiNN package 2 | ============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.PAiNN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.RGCN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.RGCN package 2 | ============================= 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.RGCN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.Schnet.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.Schnet package 2 | =============================== 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.Schnet 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.rGIN.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature.rGIN package 2 | ============================= 3 | 4 | Module contents 5 | --------------- 6 | 7 | .. automodule:: kgcnn.literature.rGIN 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | -------------------------------------------------------------------------------- /docs/source/kgcnn.literature.rst: -------------------------------------------------------------------------------- 1 | kgcnn.literature package 2 | ======================== 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | kgcnn.literature.AttentiveFP 11 | kgcnn.literature.CGCNN 12 | kgcnn.literature.CMPNN 13 | kgcnn.literature.DGIN 14 | kgcnn.literature.DMPNN 15 | kgcnn.literature.DimeNetPP 16 | kgcnn.literature.EGNN 17 | kgcnn.literature.GAT 18 | kgcnn.literature.GATv2 19 | kgcnn.literature.GCN 20 | kgcnn.literature.GIN 21 | kgcnn.literature.GNNExplain 22 | kgcnn.literature.GNNFilm 23 | kgcnn.literature.GraphSAGE 24 | kgcnn.literature.HDNNP2nd 25 | kgcnn.literature.HamNet 26 | kgcnn.literature.INorp 27 | kgcnn.literature.MAT 28 | kgcnn.literature.MEGAN 29 | kgcnn.literature.MXMNet 30 | kgcnn.literature.Megnet 31 | kgcnn.literature.MoGAT 32 | kgcnn.literature.NMPN 33 | kgcnn.literature.PAiNN 34 | kgcnn.literature.RGCN 35 | kgcnn.literature.Schnet 36 | kgcnn.literature.rGIN 37 | 38 | Module contents 39 | --------------- 40 | 41 | .. automodule:: kgcnn.literature 42 | :members: 43 | :undoc-members: 44 | :show-inheritance: 45 | -------------------------------------------------------------------------------- /docs/source/kgcnn.losses.rst: -------------------------------------------------------------------------------- 1 | kgcnn.losses package 2 | ==================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.losses.losses module 8 | -------------------------- 9 | 10 | .. automodule:: kgcnn.losses.losses 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: kgcnn.losses 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/kgcnn.metrics.rst: -------------------------------------------------------------------------------- 1 | kgcnn.metrics package 2 | ===================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.metrics.metrics module 8 | ---------------------------- 9 | 10 | .. automodule:: kgcnn.metrics.metrics 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.metrics.utils module 16 | -------------------------- 17 | 18 | .. automodule:: kgcnn.metrics.utils 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | Module contents 24 | --------------- 25 | 26 | .. automodule:: kgcnn.metrics 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | -------------------------------------------------------------------------------- /docs/source/kgcnn.models.rst: -------------------------------------------------------------------------------- 1 | kgcnn.models package 2 | ==================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.models.casting module 8 | --------------------------- 9 | 10 | .. automodule:: kgcnn.models.casting 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.models.force module 16 | ------------------------- 17 | 18 | .. automodule:: kgcnn.models.force 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.models.multi module 24 | ------------------------- 25 | 26 | .. automodule:: kgcnn.models.multi 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | kgcnn.models.serial module 32 | -------------------------- 33 | 34 | .. automodule:: kgcnn.models.serial 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | kgcnn.models.utils module 40 | ------------------------- 41 | 42 | .. automodule:: kgcnn.models.utils 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | 47 | Module contents 48 | --------------- 49 | 50 | .. automodule:: kgcnn.models 51 | :members: 52 | :undoc-members: 53 | :show-inheritance: 54 | -------------------------------------------------------------------------------- /docs/source/kgcnn.molecule.dynamics.rst: -------------------------------------------------------------------------------- 1 | kgcnn.molecule.dynamics package 2 | =============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.molecule.dynamics.ase\_calc module 8 | ---------------------------------------- 9 | 10 | .. automodule:: kgcnn.molecule.dynamics.ase_calc 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.molecule.dynamics.base module 16 | ----------------------------------- 17 | 18 | .. automodule:: kgcnn.molecule.dynamics.base 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | Module contents 24 | --------------- 25 | 26 | .. automodule:: kgcnn.molecule.dynamics 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | -------------------------------------------------------------------------------- /docs/source/kgcnn.molecule.external.rst: -------------------------------------------------------------------------------- 1 | kgcnn.molecule.external package 2 | =============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.molecule.external.ballloon module 8 | --------------------------------------- 9 | 10 | .. automodule:: kgcnn.molecule.external.ballloon 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: kgcnn.molecule.external 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/kgcnn.ops.rst: -------------------------------------------------------------------------------- 1 | kgcnn.ops package 2 | ================= 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.ops.activ module 8 | ---------------------- 9 | 10 | .. automodule:: kgcnn.ops.activ 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.ops.axis module 16 | --------------------- 17 | 18 | .. automodule:: kgcnn.ops.axis 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.ops.core module 24 | --------------------- 25 | 26 | .. automodule:: kgcnn.ops.core 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | kgcnn.ops.scatter module 32 | ------------------------ 33 | 34 | .. automodule:: kgcnn.ops.scatter 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | Module contents 40 | --------------- 41 | 42 | .. automodule:: kgcnn.ops 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | -------------------------------------------------------------------------------- /docs/source/kgcnn.optimizers.rst: -------------------------------------------------------------------------------- 1 | kgcnn.optimizers package 2 | ======================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.optimizers.optimizers module 8 | ---------------------------------- 9 | 10 | .. automodule:: kgcnn.optimizers.optimizers 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: kgcnn.optimizers 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/kgcnn.rst: -------------------------------------------------------------------------------- 1 | kgcnn package 2 | ============= 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | kgcnn.backend 11 | kgcnn.crystal 12 | kgcnn.data 13 | kgcnn.graph 14 | kgcnn.initializers 15 | kgcnn.io 16 | kgcnn.layers 17 | kgcnn.literature 18 | kgcnn.losses 19 | kgcnn.metrics 20 | kgcnn.models 21 | kgcnn.molecule 22 | kgcnn.ops 23 | kgcnn.optimizers 24 | kgcnn.training 25 | kgcnn.utils 26 | 27 | Module contents 28 | --------------- 29 | 30 | .. automodule:: kgcnn 31 | :members: 32 | :undoc-members: 33 | :show-inheritance: 34 | -------------------------------------------------------------------------------- /docs/source/kgcnn.training.rst: -------------------------------------------------------------------------------- 1 | kgcnn.training package 2 | ====================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.training.callbacks module 8 | ------------------------------- 9 | 10 | .. automodule:: kgcnn.training.callbacks 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.training.history module 16 | ----------------------------- 17 | 18 | .. automodule:: kgcnn.training.history 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.training.hyper module 24 | --------------------------- 25 | 26 | .. automodule:: kgcnn.training.hyper 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | kgcnn.training.schedule module 32 | ------------------------------ 33 | 34 | .. automodule:: kgcnn.training.schedule 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | kgcnn.training.scheduler module 40 | ------------------------------- 41 | 42 | .. automodule:: kgcnn.training.scheduler 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | 47 | Module contents 48 | --------------- 49 | 50 | .. automodule:: kgcnn.training 51 | :members: 52 | :undoc-members: 53 | :show-inheritance: 54 | -------------------------------------------------------------------------------- /docs/source/kgcnn.utils.rst: -------------------------------------------------------------------------------- 1 | kgcnn.utils package 2 | =================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | kgcnn.utils.devices module 8 | -------------------------- 9 | 10 | .. automodule:: kgcnn.utils.devices 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | kgcnn.utils.plots module 16 | ------------------------ 17 | 18 | .. automodule:: kgcnn.utils.plots 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | kgcnn.utils.serial module 24 | ------------------------- 25 | 26 | .. automodule:: kgcnn.utils.serial 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | kgcnn.utils.tests module 32 | ------------------------ 33 | 34 | .. automodule:: kgcnn.utils.tests 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | Module contents 40 | --------------- 41 | 42 | .. automodule:: kgcnn.utils 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | -------------------------------------------------------------------------------- /docs/source/modules.rst: -------------------------------------------------------------------------------- 1 | kgcnn 2 | ===== 3 | 4 | .. toctree:: 5 | :maxdepth: 4 6 | 7 | kgcnn 8 | -------------------------------------------------------------------------------- /kgcnn/__init__.py: -------------------------------------------------------------------------------- 1 | # Main package version. 2 | __kgcnn_version__ = "4.0.2" 3 | 4 | # Global definition of index order and axis. 5 | __indices_axis__ = 0 6 | __index_receive__ = 0 7 | __index_send__ = 1 8 | 9 | # Behaviour for backend functions. 10 | __safe_scatter_max_min_to_zero__ = True 11 | 12 | # Geometry 13 | __geom_euclidean_norm_add_eps__ = True # Set to false for exact sqrt computation for geometric layers. 14 | __geom_euclidean_norm_no_nan__ = True # Only used for inverse norm. 15 | -------------------------------------------------------------------------------- /kgcnn/backend/__init__.py: -------------------------------------------------------------------------------- 1 | import tree 2 | from keras import KerasTensor 3 | from keras.backend import backend 4 | 5 | 6 | def any_symbolic_tensors(args=None, kwargs=None): 7 | args = args or () 8 | kwargs = kwargs or {} 9 | for x in tree.flatten((args, kwargs)): 10 | if isinstance(x, KerasTensor): 11 | return True 12 | return False 13 | 14 | 15 | # Import backend functions. 16 | if backend() == "tensorflow": 17 | from kgcnn.backend._tensorflow import * 18 | elif backend() == "jax": 19 | from kgcnn.backend._jax import * 20 | elif backend() == "torch": 21 | from kgcnn.backend._torch import * 22 | elif backend() == "numpy": 23 | from kgcnn.backend._numpy import * 24 | else: 25 | raise ValueError(f"Unable to import backend : {backend()}") 26 | -------------------------------------------------------------------------------- /kgcnn/backend/_numpy.py: -------------------------------------------------------------------------------- 1 | def decompose_ragged_tensor(x): 2 | raise NotImplementedError("Operation not supported by this backend '%s'." % __name__) -------------------------------------------------------------------------------- /kgcnn/crystal/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/crystal/__init__.py -------------------------------------------------------------------------------- /kgcnn/crystal/periodic_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/crystal/periodic_table/__init__.py -------------------------------------------------------------------------------- /kgcnn/data/__init__.py: -------------------------------------------------------------------------------- 1 | from .base import MemoryGraphList, MemoryGraphDataset 2 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/ESOLDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MoleculeNetDataset2018 import MoleculeNetDataset2018 2 | 3 | 4 | class ESOLDataset(MoleculeNetDataset2018): 5 | r"""Store and process 'ESOL' dataset from `MoleculeNet `_ database. 6 | Class inherits from :obj:`MoleculeNetDataset2018` and downloads dataset on class initialization. 7 | 8 | Compare reference: 9 | `DeepChem `__ 10 | reading: 11 | 12 | Water solubility data(log solubility in mols per litre) for common organic small molecules. 13 | Random or Scaffold splitting is recommended for this dataset. 14 | Description in DeepChem reads: 'The Delaney (ESOL) dataset a regression dataset containing structures and water 15 | solubility data for 1128 compounds. The dataset is widely used to validate machine learning models on 16 | estimating solubility directly from molecular structures (as encoded in SMILES strings).' 17 | 18 | References: 19 | 20 | (1) Delaney, John S. ESOL: estimating aqueous solubility directly from molecular structure. 21 | Journal of chemical information and computer sciences 44.3 (2004): 1000-1005. 22 | 23 | """ 24 | 25 | def __init__(self, reload=False, verbose: int = 10): 26 | r"""Initialize ESOL dataset. 27 | 28 | Args: 29 | reload (bool): Whether to reload the data and make new dataset. Default is False. 30 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 31 | """ 32 | super(ESOLDataset, self).__init__("ESOL", reload=reload, verbose=verbose) 33 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/FreeSolvDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MoleculeNetDataset2018 import MoleculeNetDataset2018 2 | 3 | 4 | class FreeSolvDataset(MoleculeNetDataset2018): 5 | r"""Store and process 'FreeSolv' dataset from `MoleculeNet `_ database. 6 | Class inherits from :obj:`MoleculeNetDataset2018` and downloads dataset on class initialization. 7 | Compare reference: 8 | `DeepChem `__ reading: 9 | Experimental and calculated hydration free energy of small molecules in water. 10 | Description in DeepChem reads: 'The FreeSolv dataset is a collection of experimental and calculated hydration 11 | free energies for small molecules in water, along with their experiemental values. Here, we are using a modified 12 | version of the dataset with the molecule smile string and the corresponding experimental hydration free energies.' 13 | 14 | Random splitting is recommended for this dataset. 15 | 16 | References: 17 | 18 | (1) Lukasz Maziarka, et al. Molecule Attention Transformer. 19 | NeurIPS 2019 arXiv:2002.08264v1 [cs.LG]. 20 | (2) Mobley DL, Guthrie JP. FreeSolv: a database of experimental and calculated hydration free energies, 21 | with input files. J Comput Aided Mol Des. 2014;28(7):711-720. doi:10.1007/s10822-014-9747-x 22 | 23 | """ 24 | 25 | def __init__(self, reload=False, verbose: int = 10): 26 | r"""Initialize Lipop dataset. 27 | 28 | Args: 29 | reload (bool): Whether to reload the data and make new dataset. Default is False. 30 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 31 | """ 32 | super(FreeSolvDataset, self).__init__("FreeSolv", reload=reload, verbose=verbose) 33 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/LipopDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MoleculeNetDataset2018 import MoleculeNetDataset2018 2 | 3 | 4 | class LipopDataset(MoleculeNetDataset2018): 5 | r"""Store and process 'Lipop' dataset from `MoleculeNet `_ database. 6 | Class inherits from :obj:`MoleculeNetDataset2018` and downloads dataset on class initialization. 7 | Compare reference: 8 | `DeepChem `__ reading: 9 | Experimental results of octanol/water distribution coefficient(logD at pH 7.4). 10 | Description in DeepChem reads: 'Lipophilicity is an important feature of drug molecules that affects both 11 | membrane permeability and solubility. The lipophilicity dataset, curated from ChEMBL database, provides 12 | experimental results of octanol/water distribution coefficient (logD at pH 7.4) of 4200 compounds.' 13 | Random or Scaffold splitting is recommended for this dataset. 14 | 15 | References: 16 | 17 | (1) Hersey, A. ChEMBL Deposited Data Set - AZ dataset; 2015. ``_ 18 | 19 | """ 20 | 21 | def __init__(self, reload=False, verbose: int = 10): 22 | r"""Initialize Lipop dataset. 23 | 24 | Args: 25 | reload (bool): Whether to reload the data and make new dataset. Default is False. 26 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 27 | """ 28 | super(LipopDataset, self).__init__("Lipop", reload=reload, verbose=verbose) 29 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectDielectricDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectDielectricDataset(MatBenchDataset2020): 5 | """Store and process :obj:`MatProjectDielectricDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_dielectric'. 7 | 8 | Matbench test dataset for predicting refractive index from structure. Adapted from Materials Project database. 9 | Removed entries having a formation energy (or energy above the convex hull) more than 150meV and 10 | those having refractive indices less than 1 and those containing noble gases. Retrieved April 2, 2019. 11 | For benchmarking w/ nested cross validation, the order of the dataset must be identical to the retrieved data; 12 | refer to the Automatminer/Matbench publication for more details. 13 | 14 | * Number of samples: 4764 15 | * Task type: regression 16 | * Input type: structure 17 | 18 | """ 19 | 20 | def __init__(self, reload=False, verbose: int = 10): 21 | r"""Initialize 'matbench_mp_e_form' dataset. 22 | 23 | Args: 24 | reload (bool): Whether to reload the data and make new dataset. Default is False. 25 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 26 | """ 27 | # Use default base class init() 28 | super(MatProjectDielectricDataset, self).__init__("matbench_dielectric", reload=reload, verbose=verbose) 29 | self.label_names = "n_r" 30 | self.label_units = "" 31 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectEFormDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectEFormDataset(MatBenchDataset2020): 5 | r"""Store and process :obj:`MatProjectEFormDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_mp_e_form'. 7 | 8 | Matbench test dataset for predicting DFT formation energy from structure. 9 | Adapted from Materials Project database. Removed entries having formation energy more than 2.5eV and those 10 | containing noble gases. Retrieved April 2, 2019. For benchmarking w/ nested cross validation, 11 | the order of the dataset must be identical to the retrieved data; refer to the Automatminer/Matbench publication 12 | for more details. 13 | 14 | * Number of samples: 132752. 15 | * Task type: regression. 16 | * Input type: structure. 17 | 18 | """ 19 | 20 | def __init__(self, reload=False, verbose: int = 10): 21 | r"""Initialize 'matbench_mp_e_form' dataset. 22 | 23 | Args: 24 | reload (bool): Whether to reload the data and make new dataset. Default is False. 25 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 26 | """ 27 | # Use default base class init() 28 | super(MatProjectEFormDataset, self).__init__("matbench_mp_e_form", reload=reload, verbose=verbose) 29 | self.label_names = "e_form" 30 | self.label_units = "eV/atom" 31 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectGapDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectGapDataset(MatBenchDataset2020): 5 | r"""Store and process :obj:`MatProjectGapDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_mp_gap'. 7 | 8 | Matbench test dataset for predicting DFT PBE band gap from structure. 9 | Adapted from Materials Project database. Removed entries having a formation energy (or energy above the convex hull) 10 | more than 150meV and those containing noble gases. Retrieved April 2, 2019. 11 | For benchmarking w/ nested cross validation, the order of the dataset must be identical to the retrieved data; 12 | refer to the Automatminer/Matbench publication for more details. 13 | 14 | * Number of samples: 106113 15 | * Task type: regression 16 | * Input type: structure 17 | 18 | """ 19 | 20 | def __init__(self, reload=False, verbose: int = 10): 21 | r"""Initialize 'matbench_mp_e_form' dataset. 22 | 23 | Args: 24 | reload (bool): Whether to reload the data and make new dataset. Default is False. 25 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 26 | """ 27 | # Use default base class init() 28 | super(MatProjectGapDataset, self).__init__("matbench_mp_gap", reload=reload, verbose=verbose) 29 | self.label_names = "gap" 30 | self.label_units = "eV" 31 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectIsMetalDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectIsMetalDataset(MatBenchDataset2020): 5 | r"""Store and process :obj:`MatProjectIsMetalDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_mp_is_metal'. 7 | 8 | Matbench test dataset for predicting DFT metallicity from structure. Adapted from Materials Project database. 9 | Removed entries having a formation energy (or energy above the convex hull) more than 150meV and those containing 10 | noble gases. Retrieved April 2, 2019. For benchmarking w/ nested cross validation, the order of the dataset must 11 | be identical to the retrieved data; refer to the Automatminer/Matbench publication for more details. 12 | 13 | * Number of samples: 106113. 14 | * Task type: classification. 15 | * Input type: structure. 16 | 17 | """ 18 | 19 | def __init__(self, reload=False, verbose: int = 10): 20 | r"""Initialize 'matbench_mp_e_form' dataset. 21 | 22 | Args: 23 | reload (bool): Whether to reload the data and make new dataset. Default is False. 24 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 25 | """ 26 | # Use default base class init() 27 | super(MatProjectIsMetalDataset, self).__init__("matbench_mp_is_metal", reload=reload, verbose=verbose) 28 | self.label_names = "is_metal" 29 | self.label_units = "" 30 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectJdft2dDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectJdft2dDataset(MatBenchDataset2020): 5 | """Store and process :obj:`MatProjectJdft2dDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_jdft2d'. 7 | 8 | Matbench test dataset for predicting exfoliation energies from crystal structure 9 | (computed with the OptB88vdW and TBmBJ functionals). Adapted from the JARVIS DFT database. 10 | For benchmarking w/ nested cross validation, the order of the dataset must be identical to the retrieved data; 11 | refer to the Automatminer/Matbench publication for more details. 12 | 13 | * Number of samples: 636 14 | * Task type: regression 15 | * Input type: structure 16 | 17 | """ 18 | 19 | def __init__(self, reload=False, verbose: int = 10): 20 | r"""Initialize 'matbench_mp_e_form' dataset. 21 | 22 | Args: 23 | reload (bool): Whether to reload the data and make new dataset. Default is False. 24 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 25 | """ 26 | # Use default base class init() 27 | super(MatProjectJdft2dDataset, self).__init__("matbench_jdft2d", reload=reload, verbose=verbose) 28 | self.label_names = "exfoliation_en " 29 | self.label_units = "meV/atom" 30 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectLogGVRHDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectLogGVRHDataset(MatBenchDataset2020): 5 | """Store and process :obj:`MatProjectLogGVRHDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_log_gvrh'. 7 | 8 | Matbench v0.1 test dataset for predicting DFT log10 VRH-average shear modulus from structure. 9 | Adapted from Materials Project database. Removed entries having a formation energy (or energy above the convex hull) 10 | more than 150meV and those having negative G_Voigt, G_Reuss, G_VRH, K_Voigt, K_Reuss, or K_VRH and those failing 11 | G_Reuss <= G_VRH <= G_Voigt or K_Reuss <= K_VRH <= K_Voigt and those containing noble gases. 12 | Retrieved April 2, 2019. For benchmarking w/ nested cross validation, the order of the dataset must be identical 13 | to the retrieved data; refer to the Automatminer/Matbench publication for more details. 14 | 15 | * Number of samples: 10987 16 | * Task type: regression 17 | * Input type: structure 18 | 19 | """ 20 | 21 | def __init__(self, reload=False, verbose: int = 10): 22 | r"""Initialize 'matbench_mp_e_form' dataset. 23 | 24 | Args: 25 | reload (bool): Whether to reload the data and make new dataset. Default is False. 26 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 27 | """ 28 | # Use default base class init() 29 | super(MatProjectLogGVRHDataset, self).__init__("matbench_log_gvrh", reload=reload, verbose=verbose) 30 | self.label_names = "log10(G_VRH) " 31 | self.label_units = "GPa" 32 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectLogKVRHDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectLogKVRHDataset(MatBenchDataset2020): 5 | """Store and process :obj:`MatProjectLogKVRHDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_log_kvrh'. 7 | 8 | Matbench v0.1 test dataset for predicting DFT log10 VRH-average bulk modulus from structure. 9 | Adapted from Materials Project database. Removed entries having a formation energy (or energy above the convex hull) 10 | more than 150meV and those having negative G_Voigt, G_Reuss, G_VRH, K_Voigt, K_Reuss, or K_VRH and those failing 11 | G_Reuss <= G_VRH <= G_Voigt or K_Reuss <= K_VRH <= K_Voigt and those containing noble gases. 12 | Retrieved April 2, 2019. For benchmarking w/ nested cross validation, the order of the dataset must be identical 13 | to the retrieved data; refer to the Automatminer/Matbench publication for more details. 14 | 15 | * Number of samples: 10987 16 | * Task type: regression 17 | * Input type: structure 18 | 19 | """ 20 | 21 | def __init__(self, reload=False, verbose: int = 10): 22 | r"""Initialize 'matbench_mp_e_form' dataset. 23 | 24 | Args: 25 | reload (bool): Whether to reload the data and make new dataset. Default is False. 26 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 27 | """ 28 | # Use default base class init() 29 | super(MatProjectLogKVRHDataset, self).__init__("matbench_log_kvrh", reload=reload, verbose=verbose) 30 | self.label_names = "log10(K_VRH) " 31 | self.label_units = "GPa" 32 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectPerovskitesDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectPerovskitesDataset(MatBenchDataset2020): 5 | """Store and process :obj:`MatProjectPerovskitesDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_perovskites'. 7 | 8 | Matbench test dataset for predicting formation energy from crystal structure. 9 | Adapted from an original dataset generated by Castelli et al. For benchmarking w/ nested cross validation, 10 | the order of the dataset must be identical to the retrieved data; refer to the Automatminer/Matbench 11 | publication for more details. 12 | 13 | * Number of samples: 18928 14 | * Task type: regression 15 | * Input type: structure 16 | 17 | """ 18 | 19 | def __init__(self, reload=False, verbose: int = 10): 20 | r"""Initialize 'matbench_mp_e_form' dataset. 21 | 22 | Args: 23 | reload (bool): Whether to reload the data and make new dataset. Default is False. 24 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 25 | """ 26 | # Use default base class init() 27 | super(MatProjectPerovskitesDataset, self).__init__("matbench_perovskites", reload=reload, verbose=verbose) 28 | self.label_names = "e_form " 29 | self.label_units = "eV/unit_cell" 30 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/MatProjectPhononsDataset.py: -------------------------------------------------------------------------------- 1 | from kgcnn.data.datasets.MatBenchDataset2020 import MatBenchDataset2020 2 | 3 | 4 | class MatProjectPhononsDataset(MatBenchDataset2020): 5 | """Store and process :obj:`MatProjectPhononsDataset` from `MatBench `__ 6 | database. Name within Matbench: 'matbench_phonons'. 7 | 8 | Matbench test dataset for predicting vibration properties from crystal structure. Original data retrieved 9 | from Petretto et al. Original calculations done via ABINIT in the harmonic approximation based on density 10 | functional perturbation theory. Removed entries having a formation energy (or energy above the convex hull) 11 | more than 150meV. For benchmarking w/ nested cross validation, the order of the dataset must be identical to the 12 | retrieved data; refer to the Automatminer/Matbench publication for more details. 13 | 14 | * Number of samples: 1265 15 | * Task type: regression 16 | * Input type: structure 17 | 18 | last phdos peak: Target variable. Frequency of the highest frequency optical phonon mode peak, in units of 1/cm; 19 | may be used as an estimation of dominant longitudinal optical phonon frequency. 20 | 21 | """ 22 | 23 | def __init__(self, reload=False, verbose: int = 10): 24 | r"""Initialize 'matbench_mp_e_form' dataset. 25 | 26 | Args: 27 | reload (bool): Whether to reload the data and make new dataset. Default is False. 28 | verbose (int): Print progress or info for processing where 60=silent. Default is 10. 29 | """ 30 | # Use default base class init() 31 | super(MatProjectPhononsDataset, self).__init__("matbench_phonons", reload=reload, verbose=verbose) 32 | self.label_names = "omega_max" 33 | self.label_units = "1/cm" 34 | -------------------------------------------------------------------------------- /kgcnn/data/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /kgcnn/data/transform/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/data/transform/__init__.py -------------------------------------------------------------------------------- /kgcnn/data/transform/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/data/transform/base.py -------------------------------------------------------------------------------- /kgcnn/data/transform/scaler/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/data/transform/scaler/__init__.py -------------------------------------------------------------------------------- /kgcnn/graph/__init__.py: -------------------------------------------------------------------------------- 1 | from .base import GraphDict -------------------------------------------------------------------------------- /kgcnn/graph/methods/__init__.py: -------------------------------------------------------------------------------- 1 | from ._adj import ( 2 | get_angle_indices, coordinates_to_distancematrix, invert_distance, 3 | define_adjacency_from_distance, sort_edge_indices, get_angle, add_edges_reverse_indices, 4 | rescale_edge_weights_degree_sym, add_self_loops_to_edge_indices, compute_reverse_edges_index_map, 5 | distance_to_gauss_basis, get_angle_between_edges, convert_scaled_adjacency_to_list 6 | ) 7 | from ._geom import ( 8 | get_principal_moments_of_inertia, 9 | shift_coordinates_to_unit_cell, distance_for_range_indices, distance_for_range_indices_periodic, 10 | coulomb_matrix_to_inverse_distance_proton, coordinates_from_distance_matrix 11 | ) 12 | from ._periodic import ( 13 | range_neighbour_lattice 14 | ) 15 | 16 | __all__ = [ 17 | # adj 18 | "get_angle_indices", "coordinates_to_distancematrix", "invert_distance", 19 | "define_adjacency_from_distance", "sort_edge_indices", "get_angle", "add_edges_reverse_indices", 20 | "rescale_edge_weights_degree_sym", "add_self_loops_to_edge_indices", "compute_reverse_edges_index_map", 21 | "distance_to_gauss_basis", "get_angle_between_edges", "convert_scaled_adjacency_to_list", 22 | # geom 23 | "get_principal_moments_of_inertia", 24 | "shift_coordinates_to_unit_cell", "distance_for_range_indices", "distance_for_range_indices_periodic", 25 | "coulomb_matrix_to_inverse_distance_proton", "coordinates_from_distance_matrix", 26 | # periodic 27 | "range_neighbour_lattice" 28 | ] 29 | -------------------------------------------------------------------------------- /kgcnn/initializers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/initializers/__init__.py -------------------------------------------------------------------------------- /kgcnn/io/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/io/__init__.py -------------------------------------------------------------------------------- /kgcnn/io/graphlist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/io/graphlist.py -------------------------------------------------------------------------------- /kgcnn/layers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/layers/__init__.py -------------------------------------------------------------------------------- /kgcnn/literature/AttentiveFP/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default" 7 | ] 8 | -------------------------------------------------------------------------------- /kgcnn/literature/CGCNN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_crystal_model, model_crystal_default 2 | 3 | __all__ = [ 4 | "make_crystal_model", 5 | "model_crystal_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/CMPNN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default" 7 | ] 8 | -------------------------------------------------------------------------------- /kgcnn/literature/DGIN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default" 7 | ] 8 | -------------------------------------------------------------------------------- /kgcnn/literature/DMPNN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/DimeNetPP/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_crystal_model, model_crystal_default 3 | 4 | 5 | __all__ = [ 6 | "make_model", 7 | "model_default", 8 | "make_crystal_model", 9 | "model_crystal_default" 10 | ] 11 | -------------------------------------------------------------------------------- /kgcnn/literature/EGNN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/GAT/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/GATv2/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/GCN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_model_weighted, model_default_weighted 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default", 7 | "make_model_weighted", 8 | "model_default_weighted" 9 | ] 10 | 11 | -------------------------------------------------------------------------------- /kgcnn/literature/GIN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_model_edge, model_default_edge 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default", 7 | "make_model_edge", 8 | "model_default_edge" 9 | ] 10 | -------------------------------------------------------------------------------- /kgcnn/literature/GNNExplain/__init__.py: -------------------------------------------------------------------------------- 1 | from ._model import GNNExplainerOptimizer, GNNInterface, GNNExplainer 2 | 3 | __all__ = [ 4 | "GNNExplainerOptimizer", 5 | "GNNInterface", 6 | "GNNExplainer" 7 | ] 8 | -------------------------------------------------------------------------------- /kgcnn/literature/GNNFilm/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/GraphSAGE/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/HDNNP2nd/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_model_behler, model_default_behler 3 | from ._make import make_model_weighted, model_default_weighted 4 | from ._make import make_model_atom_wise, model_default_atom_wise 5 | 6 | __all__ = [ 7 | "make_model", 8 | "model_default", 9 | "make_model_behler", 10 | "model_default_behler", 11 | "make_model_weighted", 12 | "model_default_weighted", 13 | "make_model_atom_wise", 14 | "model_default_atom_wise" 15 | ] 16 | -------------------------------------------------------------------------------- /kgcnn/literature/HDNNP2nd/_layers.py: -------------------------------------------------------------------------------- 1 | import keras as ks 2 | from keras import ops 3 | 4 | 5 | class CorrectPartialCharges(ks.layers.Layer): 6 | """Layer to compute average charge corrections for partial charges from total charge.""" 7 | 8 | def __init__(self, **kwargs): 9 | """Initialize layer.""" 10 | super(CorrectPartialCharges, self).__init__(**kwargs) 11 | 12 | def build(self, input_shape): 13 | """Build layer.""" 14 | # Nothing to build here. 15 | self.built = True 16 | 17 | def call(self, inputs, **kwargs): 18 | r"""Computes charge correction. 19 | 20 | Args: 21 | inputs (list): [predict_tc, tot_charge, count_nodes, batch_id_node] 22 | 23 | - predict_tc (Tensor): Predicted total charge of shape `(batch, 1)`. 24 | - tot_charge (Tensor): True total charge of shape `(batch, 1)`. 25 | - count_nodes (Tensor): Number of nodes per sample of shape `(batch, )`. 26 | - batch_id_node (Tensor): Batch ID of nodes of shape `([N], )`. 27 | 28 | Returns: 29 | list: Corrections of partial charges of shape `([N], 1)`. 30 | """ 31 | predict_tc, tot_charge, count_nodes, batch_id_node = inputs 32 | charge_diff = tot_charge-predict_tc 33 | avg_charge_diff = charge_diff/ops.expand_dims(count_nodes, axis=-1) 34 | avg_charge_diff_per_node = ops.take(avg_charge_diff, batch_id_node, axis=0) 35 | return avg_charge_diff_per_node 36 | -------------------------------------------------------------------------------- /kgcnn/literature/HamNet/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/INorp/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default" 7 | ] 8 | -------------------------------------------------------------------------------- /kgcnn/literature/MAT/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/MEGAN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._model import MEGAN, shifted_sigmoid, ExplanationSparsityRegularization 2 | from ._make import make_model 3 | 4 | 5 | __all__ = [ 6 | "make_model", 7 | "MEGAN", 8 | "ExplanationSparsityRegularization", 9 | "shifted_sigmoid" 10 | ] 11 | -------------------------------------------------------------------------------- /kgcnn/literature/MEGAN/_layers.py: -------------------------------------------------------------------------------- 1 | from keras import Layer 2 | from keras import ops 3 | 4 | 5 | class ExplanationSparsityRegularization(Layer): 6 | 7 | def __init__(self, 8 | factor: float = 1.0, 9 | **kwargs): 10 | super(ExplanationSparsityRegularization, self).__init__(**kwargs) 11 | self.factor = factor 12 | 13 | def build(self, input_shape): 14 | super(ExplanationSparsityRegularization, self).build(input_shape) 15 | 16 | def call(self, inputs, **kwargs): 17 | r"""Computes a loss from importance scores. 18 | 19 | Args: 20 | inputs: Importance tensor of shape ([batch], [N], K) . 21 | 22 | Returns: 23 | None. 24 | """ 25 | # importances: ([batch], [N], K) 26 | importances = inputs 27 | 28 | loss = ops.mean(ops.abs(importances)) 29 | loss = loss * self.factor 30 | self.add_loss(loss) 31 | return loss -------------------------------------------------------------------------------- /kgcnn/literature/MXMNet/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default" 7 | ] 8 | -------------------------------------------------------------------------------- /kgcnn/literature/Megnet/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_crystal_model, model_crystal_default 3 | 4 | 5 | __all__ = [ 6 | "make_model", 7 | "model_default", 8 | "make_crystal_model", 9 | "model_crystal_default" 10 | ] 11 | -------------------------------------------------------------------------------- /kgcnn/literature/MoGAT/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default" 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/NMPN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_crystal_model, model_crystal_default 3 | 4 | 5 | __all__ = [ 6 | "make_model", 7 | "model_default", 8 | "make_crystal_model", 9 | "model_crystal_default" 10 | ] 11 | -------------------------------------------------------------------------------- /kgcnn/literature/PAiNN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_crystal_model, model_crystal_default 3 | 4 | 5 | __all__ = [ 6 | "make_model", 7 | "model_default", 8 | "make_crystal_model", 9 | "model_crystal_default" 10 | ] 11 | -------------------------------------------------------------------------------- /kgcnn/literature/RGCN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | 4 | __all__ = [ 5 | "make_model", 6 | "model_default" 7 | ] 8 | -------------------------------------------------------------------------------- /kgcnn/literature/Schnet/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | from ._make import make_crystal_model, model_crystal_default 3 | 4 | 5 | __all__ = [ 6 | "make_model", 7 | "model_default", 8 | "make_crystal_model", 9 | "model_crystal_default" 10 | ] 11 | -------------------------------------------------------------------------------- /kgcnn/literature/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/literature/__init__.py -------------------------------------------------------------------------------- /kgcnn/literature/rGIN/__init__.py: -------------------------------------------------------------------------------- 1 | from ._make import make_model, model_default 2 | 3 | __all__ = [ 4 | "make_model", 5 | "model_default", 6 | ] 7 | -------------------------------------------------------------------------------- /kgcnn/literature/rGIN/_model.py: -------------------------------------------------------------------------------- 1 | from kgcnn.layers.mlp import GraphMLP, MLP 2 | from kgcnn.layers.modules import Embedding 3 | from keras.layers import Dense, Dropout, Add 4 | from kgcnn.layers.pooling import PoolingNodes 5 | from ._layers import rGIN 6 | 7 | 8 | def model_disjoint( 9 | inputs, 10 | use_node_embedding, 11 | input_node_embedding, 12 | gin_mlp, 13 | depth, 14 | rgin_args, 15 | last_mlp, 16 | output_mlp, 17 | output_embedding, 18 | dropout 19 | ): 20 | n, edi, batch_id_node, count_nodes = inputs 21 | 22 | # Embedding, if no feature dimension 23 | if use_node_embedding: 24 | n = Embedding(**input_node_embedding)(n) 25 | 26 | # Model 27 | # Map to the required number of units. 28 | n_units = gin_mlp["units"][-1] if isinstance(gin_mlp["units"], list) else int(gin_mlp["units"]) 29 | n = Dense(n_units, use_bias=True, activation='linear')(n) 30 | list_embeddings = [n] 31 | for i in range(0, depth): 32 | n = rGIN(**rgin_args)([n, edi]) 33 | n = GraphMLP(**gin_mlp)([n, batch_id_node, count_nodes]) 34 | list_embeddings.append(n) 35 | 36 | # Output embedding choice 37 | if output_embedding == "graph": 38 | out = [PoolingNodes()([count_nodes, x, batch_id_node]) for x in list_embeddings] # will return tensor 39 | out = [MLP(**last_mlp)(x) for x in out] 40 | out = [Dropout(dropout)(x) for x in out] 41 | out = Add()(out) 42 | out = MLP(**output_mlp)(out) 43 | elif output_embedding == "node": # Node labeling 44 | out = n 45 | out = GraphMLP(**last_mlp)([out, batch_id_node, count_nodes]) 46 | out = GraphMLP(**output_mlp)([out, batch_id_node, count_nodes]) 47 | else: 48 | raise ValueError("Unsupported output embedding for mode `rGIN`") 49 | 50 | return out 51 | -------------------------------------------------------------------------------- /kgcnn/losses/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/losses/__init__.py -------------------------------------------------------------------------------- /kgcnn/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | from .metrics import ScaledMeanAbsoluteError, ScaledRootMeanSquaredError -------------------------------------------------------------------------------- /kgcnn/metrics/utils.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | def merge_metrics(m1, m2): 5 | """Merge two metric lists or dicts of `ks.metrics` objects.""" 6 | if m1 is None: 7 | return m2 8 | if m2 is None: 9 | return m1 10 | # Dict case with multiple named outputs. 11 | if isinstance(m1, dict) and isinstance(m2, dict): 12 | keys = set(list(m1.keys()) + list(m2.keys())) 13 | m = {key: [] for key in keys} 14 | for mu in [m1, m2]: 15 | for key, value in mu.items(): 16 | if value is not None: 17 | m[key] = m[key] + (list(value) if isinstance(value, (list, tuple)) else [value]) 18 | return m 19 | # Lists for single model output. 20 | m1 = [m1] if not isinstance(m1, (list, tuple)) else m1 21 | m2 = [m2] if not isinstance(m2, (list, tuple)) else m2 22 | if all([not isinstance(x1, (list, tuple)) for x1 in m1] + [not isinstance(x2, (list, tuple)) for x2 in m2]): 23 | return m1 + m2 24 | # List for multiple model output with nested lists. 25 | if len(m1) == len(m2): 26 | m = [[]] * len(m1) 27 | for i in range(len(m)): 28 | for mu in [m1, m2]: 29 | if mu[i] is not None: 30 | m[i] = m[i] + (list(mu[i]) if isinstance(mu[i], (list, tuple)) else [mu[i]]) 31 | return m 32 | else: 33 | logging.error("For multiple model outputs require same length of metrics list to merge.") 34 | logging.error("Can not merge metrics '%s' and '%s'." % (m1, m2)) 35 | return None -------------------------------------------------------------------------------- /kgcnn/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/models/__init__.py -------------------------------------------------------------------------------- /kgcnn/models/multi.py: -------------------------------------------------------------------------------- 1 | import keras as ks 2 | import itertools 3 | from keras.layers import Concatenate 4 | from kgcnn.layers.mlp import MLP 5 | 6 | 7 | def merge_models(model_list: list, 8 | merge_type: str = "concat", 9 | output_mlp: dict = None): 10 | r"""Merge a list of models by combining their output. 11 | 12 | Args: 13 | model_list (list): List of graph models. 14 | merge_type (str): How to merge the output. 15 | output_mlp (dict): Kwargs of the final MLP after the models' output. 16 | 17 | Returns: 18 | :obj:`ks.models.Model` 19 | """ 20 | if output_mlp: 21 | if isinstance(output_mlp, dict): 22 | output_mlp = MLP(**output_mlp) 23 | 24 | combined_inputs = [] 25 | for m in model_list: 26 | new_inputs_per_model = [] 27 | for i, input_layer in enumerate(m.inputs): 28 | new_input_layer = ks.Input(type_spec=input_layer.type_spec, name=input_layer.name) 29 | new_inputs_per_model.append(new_input_layer) 30 | combined_inputs.append(new_inputs_per_model) 31 | 32 | new_outputs = [] 33 | for x, m in zip(combined_inputs, model_list): 34 | new_outputs.append(m(x)) 35 | 36 | if merge_type in ["concat", "concatenate"]: 37 | output = Concatenate(axis=-1)(new_outputs) 38 | else: 39 | raise NotImplementedError("Unknown merge type '%s' for models" % merge_type) 40 | 41 | if output_mlp: 42 | output = output_mlp(output) 43 | 44 | flatten_inputs = list(itertools.chain(*combined_inputs)) 45 | return ks.models.Model(inputs=flatten_inputs, outputs=output) 46 | -------------------------------------------------------------------------------- /kgcnn/models/serial.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import keras as ks 3 | from kgcnn.models.utils import get_model_class 4 | 5 | 6 | def deserialize(obj_dict: dict) -> ks.models.Model: 7 | 8 | if isinstance(obj_dict, ks.models.Model): 9 | return obj_dict 10 | if not isinstance(obj_dict, dict): 11 | raise ValueError("Can not deserialize model with '%s'." % obj_dict) 12 | if "config" not in obj_dict: 13 | obj_dict.update({"config": {}}) 14 | class_name = obj_dict.get("class_name") 15 | module_name = obj_dict.get("module_name") 16 | model_cls = get_model_class(module_name=module_name, class_name=class_name) 17 | obj = model_cls(**obj_dict["config"]) 18 | 19 | if hasattr(obj, "set_weights") and "weights" in obj_dict: 20 | obj.set_weights(obj_dict["weights"]) 21 | 22 | # Call class methods if methods are in obj_dict. 23 | # Order is important here. 24 | if "methods" in obj_dict: 25 | method_list = obj_dict["methods"] 26 | if hasattr(obj, "set_methods"): 27 | obj.set_methods(method_list) 28 | else: 29 | # Try setting them manually. 30 | for method_item in method_list: 31 | for method, kwargs in method_item.items(): 32 | if hasattr(obj, method): 33 | getattr(obj, method)(**kwargs) 34 | else: 35 | logging.error("Class for deserialization does not have method '%s'." % method) 36 | 37 | return obj 38 | -------------------------------------------------------------------------------- /kgcnn/molecule/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/molecule/__init__.py -------------------------------------------------------------------------------- /kgcnn/molecule/dynamics/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/molecule/dynamics/__init__.py -------------------------------------------------------------------------------- /kgcnn/molecule/external/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/molecule/external/__init__.py -------------------------------------------------------------------------------- /kgcnn/molecule/serial.py: -------------------------------------------------------------------------------- 1 | from kgcnn.molecule.encoder import OneHotEncoder 2 | 3 | 4 | def deserialize_encoder(encoder_identifier): 5 | """Deserialization of encoder class. 6 | 7 | Args: 8 | encoder_identifier: Identifier, class or function of an encoder. 9 | 10 | Returns: 11 | obj: Deserialized encoder. 12 | """ 13 | # TODO: Can extend deserialization to any callable encoder. 14 | if isinstance(encoder_identifier, dict): 15 | if encoder_identifier["class_name"] == "OneHotEncoder": 16 | return OneHotEncoder.from_config(encoder_identifier["config"]) 17 | elif hasattr(encoder_identifier, "__call__"): 18 | return encoder_identifier 19 | else: 20 | raise ValueError("Unable to deserialize encoder %s " % encoder_identifier) -------------------------------------------------------------------------------- /kgcnn/ops/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/ops/__init__.py -------------------------------------------------------------------------------- /kgcnn/optimizers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/optimizers/__init__.py -------------------------------------------------------------------------------- /kgcnn/training/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/training/__init__.py -------------------------------------------------------------------------------- /kgcnn/training/callbacks.py: -------------------------------------------------------------------------------- 1 | import keras as ks 2 | import keras.callbacks 3 | 4 | 5 | class LearningRateLoggingCallback(ks.callbacks.Callback): 6 | """Callback logging the learning rate.""" 7 | 8 | def __init__(self, verbose: int = 1): 9 | """Initialize class. 10 | 11 | Args: 12 | verbose (int): Verbosity. Default is 1. 13 | """ 14 | super(LearningRateLoggingCallback, self).__init__() 15 | self.verbose = verbose 16 | 17 | def on_epoch_end(self, epoch, logs=None): 18 | """Read out the learning rate on epoch end. 19 | 20 | Args: 21 | epoch (int): Number of current epoch. 22 | logs (dict): Dictionary of the logs. 23 | 24 | Returns: 25 | None. 26 | """ 27 | lr = self.model.optimizer.learning_rate 28 | logs = logs or {} 29 | logs['lr'] = float(ks.backend.convert_to_numpy(self.model.optimizer.learning_rate)) 30 | if self.verbose > 0: 31 | print("\nEpoch %05d: Finished epoch with learning rate: %s.\n" % (epoch + 1, logs['lr'])) 32 | 33 | def get_config(self): 34 | """Get config for this class.""" 35 | config = {"verbose": self.verbose} 36 | return config 37 | 38 | @classmethod 39 | def from_config(cls, config): 40 | """Make class instance from config.""" 41 | return cls(**config) 42 | -------------------------------------------------------------------------------- /kgcnn/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/kgcnn/utils/__init__.py -------------------------------------------------------------------------------- /notebooks/README.md: -------------------------------------------------------------------------------- 1 | # Notebooks 2 | 3 | Example notebooks to show usage of ``kgcnn``. 4 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | keras>=3.0.0 2 | torch>=2.1.0 3 | tensorflow-cpu~=2.16.1 4 | torchvision>=0.16.0 5 | jax[cpu] 6 | numpy>=1.23.0 7 | scikit-learn>=1.1.3 8 | pandas>=1.5.2 9 | scipy>=1.9.3 10 | pyyaml>=6.0 11 | matplotlib>=3.6.0 12 | rdkit>=2022.9.2 13 | pymatgen>=2022.11.7 14 | keras-tuner>=1.1.3 15 | requests>=2.28.1 16 | networkx>=2.8.8 17 | sympy>=1.11.1 18 | ase>=3.22.1 19 | click>=7.1.2 20 | brotli>=1.0.9 21 | pyxtal>=0.6.4 22 | h5py>=3.9.0 23 | dm-tree>=0.1.8 -------------------------------------------------------------------------------- /test/README.md: -------------------------------------------------------------------------------- 1 | Some function test 2 | -------------------------------------------------------------------------------- /test/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/test/__init__.py -------------------------------------------------------------------------------- /test/assets/README.md: -------------------------------------------------------------------------------- 1 | # Test Assets 2 | 3 | External files required for test cases can be placed here. Also artifacts generated by certain test cases 4 | can be placed into this folder. 5 | 6 | The path to this folder is available from within a unittest via: 7 | 8 | ```python 9 | import os 10 | from .utils import ASSETS_PATH 11 | file_path = os.path.join(ASSETS_PATH, 'README.md') 12 | ``` 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/assets/bessel_basis_reference.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/test/assets/bessel_basis_reference.npz -------------------------------------------------------------------------------- /test/assets/faulty_molecules.csv: -------------------------------------------------------------------------------- 1 | index,name,label,smiles 2 | 57,compound 36,1,CN(C)Cc1ccc(CSCCNC2=C([N+]([O-])=O)C(Cc3ccccc3)=CN2)o1 3 | 58,19,0,CNC(=NC#N)Nc1cccc(c1)c1csc(n1)N=C(N)N 4 | 59,Y-G 14,1,n(ccc1)c(c1)CCNC 5 | 60,15,1,O=N([O-])C1=C(CN=C1NCCSCc2ncccc2)Cc3ccccc3 -------------------------------------------------------------------------------- /test/assets/simple_molecules.csv: -------------------------------------------------------------------------------- 1 | index,name,label,smiles 2 | 1,Propanolol,1,[Cl].CC(C)NCC(O)COc1cccc2ccccc12 3 | 2,Terbutylchlorambucil,1,C(=O)(OC(C)(C)C)CCCc1ccc(cc1)N(CCCl)CCCl 4 | 3,40730,1,c12c3c(N4CCN(C)CC4)c(F)cc1c(c(C(O)=O)cn2C(C)CO3)=O 5 | 4,24,1,C1CCN(CC1)Cc1cccc(c1)OCCCNC(=O)C -------------------------------------------------------------------------------- /test/layers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/test/layers/__init__.py -------------------------------------------------------------------------------- /test/layers/gather_test.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from kgcnn.utils.tests import TestCase 3 | from keras import ops 4 | from kgcnn.layers.gather import GatherNodes 5 | 6 | 7 | class GatherNodesTest(TestCase): 8 | 9 | node_attr = np.array([[0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0]]) 10 | edge_attr = np.array([[0.0, 0.0, 0.0], [0.0, 0.0, 1.0], [0.0, 1.0, 0.0], [1.0, 1.0, 1.0], 11 | [1.0, 0.0, 0.0], [1.0, 0.0, 1.0], [1.0, 1.0, 0.0], [-1.0, 1.0, 1.0]]) 12 | edge_index = np.array([[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 2, 3, 2, 3]], dtype="int64") 13 | batch = np.array([0, 0, 1, 1]) 14 | 15 | def test_correctness(self): 16 | 17 | layer = GatherNodes() 18 | nodes_per_edge = layer([self.node_attr, ops.cast(self.edge_index, dtype="int64")]) 19 | expected_output = np.array([[0., 0., 0., 0., ], [0., 0., 0., 1.], [0., 1., 0., 0.], [0., 1., 0., 1.], 20 | [1., 0., 1., 0.], [1., 0., 1., 1.], [1., 1., 1., 0.], [1., 1., 1., 1.]]) 21 | self.assertAllClose(nodes_per_edge, expected_output) 22 | 23 | 24 | if __name__ == "__main__": 25 | 26 | GatherNodesTest().test_correctness() 27 | print("Tests passed.") -------------------------------------------------------------------------------- /test/metrics/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimat-lab/gcnn_keras/ab2a914301e2ff3fe2d231153e4f8b785fc9996a/test/metrics/__init__.py -------------------------------------------------------------------------------- /test/metrics/metrics_test.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import unittest 3 | from kgcnn.metrics.metrics import ScaledForceMeanAbsoluteError 4 | 5 | 6 | class TestScaledForceMeanAbsoluteError(unittest.TestCase): 7 | 8 | def test_correctness(self): 9 | 10 | m = ScaledForceMeanAbsoluteError() 11 | 12 | y_true = np.array([[[1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [3.0, 3.0, 3.0]], 13 | [[1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [0.0, 0.0, 0.0]]]) 14 | y_pred = np.array([[[1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [3.0, 3.0, 3.0]], 15 | [[2.0, 2.0, 2.0], [2.0, 2.0, 2.0], [0.0, 0.0, 0.0]]]) 16 | m.update_state(y_true=y_true, y_pred=y_pred) 17 | result = np.array(m.result()) 18 | print(result) 19 | # self.assertTrue(np.max(np.abs(result - expected_result)) < 1e-6) 20 | 21 | 22 | if __name__ == "__main__": 23 | 24 | TestScaledForceMeanAbsoluteError().test_correctness() 25 | print("Tests passed.") -------------------------------------------------------------------------------- /test/utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pathlib 3 | 4 | PATH = pathlib.Path(__file__).parent.absolute() 5 | ASSETS_PATH = os.path.join(PATH, 'assets') 6 | 7 | -------------------------------------------------------------------------------- /training/results/ClinToxDataset/GAT/GAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GAT", "config": {"name": "GAT", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 50, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ClinToxDataset", "module_name": "kgcnn.data.datasets.ClinToxDataset", "config": {}, "methods": [{"set_attributes": {}}, {"set_train_test_indices_k_fold": {"n_splits": 5, "random_state": 42, "shuffle": true}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ClinToxDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 4, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 50, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ClinToxDataset", "module_name": "kgcnn.data.datasets.ClinToxDataset", "config": {}, "methods": [{"set_attributes": {}}, {"set_train_test_indices_k_fold": {"n_splits": 5, "random_state": 42, "shuffle": true}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ClinToxDataset/GCN/GCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GCN", "config": {"name": "GCN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 25, "output_dim": 1}, "gcn_args": {"units": 140, "use_bias": true, "activation": "relu"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 50, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.0005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}}, "dataset": {"class_name": "ClinToxDataset", "module_name": "kgcnn.data.datasets.ClinToxDataset", "config": {}, "methods": [{"set_attributes": {}}, {"set_train_test_indices_k_fold": {"n_splits": 5, "random_state": 42, "shuffle": true}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/ClinToxDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 96, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph_batch", "padded_disjoint": false}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 2], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "sigmoid", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 50, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 5800, "decay_rate": 0.5, "staircase": false}}}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}}, "dataset": {"class_name": "ClinToxDataset", "module_name": "kgcnn.data.datasets.ClinToxDataset", "config": {}, "methods": [{"set_attributes": {}}, {"set_train_test_indices_k_fold": {"n_splits": 5, "random_state": 42, "shuffle": true}}, {"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/CoraDataset/GCN/GCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature_core.GCN", "config": {"name": "GCN", "inputs": [{"shape": [null, 8710], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 25, "output_dim": 1}, "gcn_args": {"units": 140, "use_bias": true, "activation": "relu"}, "depth": 3, "verbose": 10, "output_embedding": "node", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 70], "activation": ["relu", "relu", "softmax"]}}}, "training": {"fit": {"batch_size": 1, "epochs": 300, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 0.0001, "epo_min": 260, "epo": 300, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "categorical_crossentropy", "weighted_metrics": ["categorical_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "multi_target_indices": null}, "data": {}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "CoraDataset", "module_name": "kgcnn.data.datasets.CoraDataset", "config": {}, "methods": [{"map_list": {"method": "make_undirected_edges"}}, {"map_list": {"method": "add_edge_self_loops"}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/CoraDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 8710], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "depth": 4, "dropout": 0.01, "gin_mlp": {"units": [140, 140], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": false, "normalization_technique": "graph_layer", "padded_disjoint": false}, "gin_args": {"trainable": true}, "last_mlp": {"use_bias": true, "units": [140, 70, 70], "activation": ["relu", "relu", "linear"]}, "output_embedding": "node", "output_mlp": {"activation": ["softmax"], "units": [70]}}}, "training": {"fit": {"batch_size": 1, "epochs": 800, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 1e-05, "epo_min": 0, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "categorical_crossentropy", "weighted_metrics": ["categorical_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "multi_target_indices": null}, "data": {}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "CoraDataset", "module_name": "kgcnn.data.datasets.CoraDataset", "config": {}, "methods": [{"map_list": {"method": "make_undirected_edges"}}, {"map_list": {"method": "add_edge_self_loops"}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/CoraLuDataset/GCN/GCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature_core.GCN", "config": {"name": "GCN", "inputs": [{"shape": [null, 1433], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": true}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 25, "output_dim": 1}, "gcn_args": {"units": 64, "use_bias": true, "activation": "relu"}, "depth": 3, "verbose": 10, "output_embedding": "node", "output_to_tensor": true, "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 7], "activation": ["relu", "relu", "softmax"]}}}, "training": {"fit": {"batch_size": 1, "epochs": 300, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 0.0001, "epo_min": 260, "epo": 300, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "categorical_crossentropy", "weighted_metrics": ["categorical_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "multi_target_indices": null}, "data": {}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "CoraLuDataset", "module_name": "kgcnn.data.datasets.CoraLuDataset", "config": {}, "methods": [{"map_list": {"method": "make_undirected_edges"}}, {"map_list": {"method": "add_edge_self_loops"}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/CoraLuDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature_core.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 1433], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph_batch"}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 7], "activation": ["relu", "relu", "linear"]}, "output_embedding": "node", "output_mlp": {"activation": "softmax", "units": 7}}}, "training": {"fit": {"batch_size": 1, "epochs": 500, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 400, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "categorical_crossentropy", "weighted_metrics": ["categorical_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "multi_target_indices": null}, "data": {}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "CoraLuDataset", "module_name": "kgcnn.data.datasets.CoraLuDataset", "config": {}, "methods": [{"map_list": {"method": "make_undirected_edges"}}, {"map_list": {"method": "add_edge_self_loops"}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/AttentiveFP/AttentiveFP_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.AttentiveFP", "config": {"name": "AttentiveFP", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "attention_args": {"units": 200}, "depthato": 2, "depthmol": 3, "dropout": 0.2, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [200, 1], "activation": ["kgcnn>leaky_relu", "linear"]}}}, "training": {"fit": {"batch_size": 200, "epochs": 200, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "AdamW", "module_name": "keras_core.optimizers", "config": {"learning_rate": 0.0031622776601683794, "weight_decay": 1e-05}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 4, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 2, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"set_train_test_indices_k_fold": {"n_splits": 5, "random_state": 42, "shuffle": true}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 96, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph_batch", "padded_disjoint": false}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "linear", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 300, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 1600, "decay_rate": 0.5, "staircase": false}}}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "StandardLabelScaler", "module_name": "kgcnn.data.transform.scaler.standard", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"set_train_test_indices_k_fold": {"n_splits": 5, "random_state": 42, "shuffle": true}}, {"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/GNNFilm/GNNFilm_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GNNFilm", "config": {"name": "GNNFilm", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null], "name": "edge_number", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "dense_relation_kwargs": {"units": 64, "num_relations": 20}, "dense_modulation_kwargs": {"units": 64, "num_relations": 20, "activation": "sigmoid"}, "activation_kwargs": {"activation": "swish"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/HamNet/HamNet_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.HamNet", "config": {"name": "HamNet", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "message_kwargs": {"units": 200, "units_edge": 200, "rate": 0.5, "use_dropout": true}, "fingerprint_kwargs": {"units": 200, "units_attend": 200, "rate": 0.5, "use_dropout": true, "depth": 3}, "gru_kwargs": {"units": 200}, "verbose": 10, "depth": 3, "union_type_node": "gru", "union_type_edge": "None", "given_coordinates": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, false], "units": [200, 1], "activation": ["relu", "linear"], "use_dropout": [true, false], "rate": [0.5, 0.0]}}}, "training": {"fit": {"batch_size": 40, "epochs": 400, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "AdamW", "config": {"learning_rate": 0.001, "weight_decay": 1e-05}}, "loss": "mean_squared_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/MEGAN/MEGAN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.MEGAN", "config": {"name": "MEGAN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null], "name": "edge_number", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [2], "name": "graph_attributes", "dtype": "float32"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_tensor_type": "padded", "units": [60, 50, 40, 30], "importance_units": [], "final_units": [50, 30, 10, 1], "dropout_rate": 0.3, "final_dropout_rate": 0.0, "importance_channels": 3, "return_importances": false, "use_edge_features": false}}, "training": {"fit": {"batch_size": 64, "epochs": 400, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 1e-05, "epo_min": 200, "epo": 400, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "mean_squared_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "set_range", "max_distance": 3, "max_neighbours": 100}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/MoGAT/MoGAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.MoGAT", "config": {"name": "MoGAT", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "attention_args": {"units": 100}, "depthato": 2, "depthmol": 2, "pooling_gat_nodes_args": {"pooling_method": "mean"}, "dropout": 0.2, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true], "units": [1], "activation": ["linear"]}}}, "training": {"fit": {"batch_size": 200, "epochs": 200, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "AdamW", "config": {"learning_rate": 0.001, "weight_decay": 1e-05}}, "loss": "mean_squared_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/PAiNN/PAiNN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.PAiNN", "config": {"name": "PAiNN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "range_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 128}, "bessel_basis": {"num_radial": 20, "cutoff": 5.0, "envelope_exponent": 5}, "pooling_args": {"pooling_method": "scatter_sum"}, "conv_args": {"units": 128, "cutoff": null}, "update_args": {"units": 128}, "depth": 3, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [128, 1], "activation": ["swish", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 250, "validation_freq": 10, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"class_name": "kgcnn>LinearWarmupExponentialDecay", "config": {"learning_rate": 0.001, "warmup_steps": 30.0, "decay_steps": 40000.0, "decay_rate": 0.01}}, "amsgrad": true, "use_ema": true}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {"add_hydrogen": true}}, {"map_list": {"method": "set_range", "max_distance": 3, "max_neighbours": 10000}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/RGCN/RGCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.RGCN", "config": {"name": "RGCN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null], "name": "edge_number", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "dense_relation_kwargs": {"units": 64, "num_relations": 20}, "dense_kwargs": {"units": 64}, "activation_kwargs": {"activation": "swish"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/ESOLDataset/rGIN/rGIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.rGIN", "config": {"name": "rGIN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_tensor_type": "padded", "input_embedding": null, "input_node_embedding": {"input_dim": 96, "output_dim": 95}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph"}, "rgin_args": {"random_range": 100}, "last_mlp": {"use_bias": true, "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "linear", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 300, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 1600, "decay_rate": 0.5, "staircase": false}}}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "ESOLDataset", "module_name": "kgcnn.data.datasets.ESOLDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/GAT/GAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GAT", "config": {"name": "GAT", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 4, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/GCN/GCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GCN", "config": {"name": "GCN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": true}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 25, "output_dim": 1}, "gcn_args": {"units": 140, "use_bias": true, "activation": "relu"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 96, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph_batch", "padded_disjoint": false}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "linear", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 300, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 5800, "decay_rate": 0.5, "staircase": false}}}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_train_test_indices_k_fold": {"n_splits": 5, "random_state": 42, "shuffle": true}}, {"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/GNNFilm/GNNFilm_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GNNFilm", "config": {"name": "GNNFilm", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null], "name": "edge_number", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "dense_relation_kwargs": {"units": 64, "num_relations": 20}, "dense_modulation_kwargs": {"units": 64, "num_relations": 20, "activation": "sigmoid"}, "activation_kwargs": {"activation": "swish"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/HamNet/HamNet_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.HamNet", "config": {"name": "HamNet", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "message_kwargs": {"units": 200, "units_edge": 200, "rate": 0.5, "use_dropout": true}, "fingerprint_kwargs": {"units": 200, "units_attend": 200, "rate": 0.5, "use_dropout": true, "depth": 3}, "gru_kwargs": {"units": 200}, "verbose": 10, "depth": 3, "union_type_node": "gru", "union_type_edge": "None", "given_coordinates": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, false], "units": [200, 1], "activation": ["relu", "linear"], "use_dropout": [true, false], "rate": [0.5, 0.0]}}}, "training": {"fit": {"batch_size": 40, "epochs": 400, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "AdamW", "config": {"learning_rate": 0.001, "weight_decay": 1e-05}}, "loss": "mean_squared_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/MEGAN/MEGAN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.MEGAN", "config": {"name": "MEGAN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null], "name": "edge_number", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [2], "name": "graph_attributes", "dtype": "float32"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_tensor_type": "padded", "units": [60, 50, 40, 30], "importance_units": [], "final_units": [50, 30, 10, 1], "dropout_rate": 0.3, "final_dropout_rate": 0.0, "importance_channels": 3, "return_importances": false, "use_edge_features": false}}, "training": {"fit": {"batch_size": 64, "epochs": 400, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 1e-05, "epo_min": 200, "epo": 400, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "mean_squared_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "set_range", "max_distance": 3, "max_neighbours": 100}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/MoGAT/MoGAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.MoGAT", "config": {"name": "MoGAT", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "attention_args": {"units": 100}, "depthato": 2, "depthmol": 2, "pooling_gat_nodes_args": {"pooling_method": "mean"}, "dropout": 0.2, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true], "units": [1], "activation": ["linear"]}}}, "training": {"fit": {"batch_size": 200, "epochs": 200, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "AdamW", "config": {"learning_rate": 0.001, "weight_decay": 1e-05}}, "loss": "mean_squared_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/RGCN/RGCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.RGCN", "config": {"name": "RGCN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null], "name": "edge_number", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "dense_relation_kwargs": {"units": 64, "num_relations": 20}, "dense_kwargs": {"units": 64}, "activation_kwargs": {"activation": "swish"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/FreeSolvDataset/rGIN/rGIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.rGIN", "config": {"name": "rGIN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "input_tensor_type": "padded", "input_embedding": null, "input_node_embedding": {"input_dim": 96, "output_dim": 95}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph"}, "rgin_args": {"random_range": 100}, "last_mlp": {"use_bias": true, "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "linear", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 300, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 1600, "decay_rate": 0.5, "staircase": false}}}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": "mol/L"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "FreeSolvDataset", "module_name": "kgcnn.data.datasets.FreeSolvDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/LipopDataset/GAT/GAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GAT", "config": {"name": "GAT", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 2, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "LipopDataset", "module_name": "kgcnn.data.datasets.LipopDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/LipopDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 4, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 2, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "LipopDataset", "module_name": "kgcnn.data.datasets.LipopDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/LipopDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 96, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "padded_disjoint": false, "normalization_technique": "graph_batch"}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "linear", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 300, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 5800, "decay_rate": 0.5, "staircase": false}}}}, "loss": "mean_absolute_error"}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "scaler": {"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "LipopDataset", "module_name": "kgcnn.data.datasets.LipopDataset", "config": {}, "methods": [{"set_attributes": {}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/MD17Dataset/PAiNN_EnergyForceModel/PAiNN_MD17Dataset_score_aspirin_ccsd.yaml: -------------------------------------------------------------------------------- 1 | OS: posix_linux 2 | backend: tensorflow 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2024-01-19 19:17:46' 6 | device_id: '[LogicalDevice(name=''/device:CPU:0'', device_type=''CPU''), LogicalDevice(name=''/device:GPU:0'', 7 | device_type=''GPU'')]' 8 | device_memory: '[]' 9 | device_name: '[{}, {''compute_capability'': (7, 0), ''device_name'': ''Tesla V100-SXM2-32GB''}]' 10 | energy_scaled_mean_absolute_error: 11 | - 0.20170779526233673 12 | epochs: 13 | - 1000 14 | execute_folds: null 15 | force_scaled_mean_absolute_error: 16 | - 0.27192622423171997 17 | kgcnn_version: 4.0.0 18 | loss: 19 | - 0.040751248598098755 20 | max_energy_scaled_mean_absolute_error: 21 | - 12.22606086730957 22 | max_force_scaled_mean_absolute_error: 23 | - 19.689008712768555 24 | max_loss: 25 | - 2.975248336791992 26 | max_val_energy_scaled_mean_absolute_error: 27 | - 9.95431900024414 28 | max_val_force_scaled_mean_absolute_error: 29 | - 14.166427612304688 30 | max_val_loss: 31 | - 2.147376298904419 32 | min_energy_scaled_mean_absolute_error: 33 | - 0.20170779526233673 34 | min_force_scaled_mean_absolute_error: 35 | - 0.27192622423171997 36 | min_loss: 37 | - 0.040751248598098755 38 | min_val_energy_scaled_mean_absolute_error: 39 | - 0.2632357180118561 40 | min_val_force_scaled_mean_absolute_error: 41 | - 0.8550477623939514 42 | min_val_loss: 43 | - 0.12949016690254211 44 | model_class: EnergyForceModel 45 | model_name: PAiNN 46 | model_version: '' 47 | multi_target_indices: null 48 | number_histories: 1 49 | seed: 42 50 | time_list: 51 | - '0:20:41.188479' 52 | trajectory_name: aspirin_ccsd 53 | val_energy_scaled_mean_absolute_error: 54 | - 0.2693638503551483 55 | val_force_scaled_mean_absolute_error: 56 | - 0.8550565242767334 57 | val_loss: 58 | - 0.12949059903621674 59 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/PAiNN_EnergyForceModel/PAiNN_MD17Dataset_score_benzene_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: posix_linux 2 | backend: tensorflow 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2024-02-03 06:14:04' 6 | device_id: '[LogicalDevice(name=''/device:CPU:0'', device_type=''CPU''), LogicalDevice(name=''/device:GPU:0'', 7 | device_type=''GPU'')]' 8 | device_memory: '[]' 9 | device_name: '[{}, {''compute_capability'': (7, 0), ''device_name'': ''Tesla V100-SXM2-32GB''}]' 10 | energy_scaled_mean_absolute_error: 11 | - 0.006360400002449751 12 | epochs: 13 | - 1000 14 | execute_folds: null 15 | force_scaled_mean_absolute_error: 16 | - 0.02935820259153843 17 | kgcnn_version: 4.0.0 18 | loss: 19 | - 0.01170190330594778 20 | max_energy_scaled_mean_absolute_error: 21 | - 10.103582382202148 22 | max_force_scaled_mean_absolute_error: 23 | - 12.756863594055176 24 | max_loss: 25 | - 5.149803638458252 26 | max_val_energy_scaled_mean_absolute_error: 27 | - 23.537092208862305 28 | max_val_force_scaled_mean_absolute_error: 29 | - 6.165292739868164 30 | max_val_loss: 31 | - 2.6731419563293457 32 | min_energy_scaled_mean_absolute_error: 33 | - 0.006335231009870768 34 | min_force_scaled_mean_absolute_error: 35 | - 0.02935820259153843 36 | min_loss: 37 | - 0.01170190330594778 38 | min_val_energy_scaled_mean_absolute_error: 39 | - 0.006716604344546795 40 | min_val_force_scaled_mean_absolute_error: 41 | - 0.04271000623703003 42 | min_val_loss: 43 | - 0.01723838970065117 44 | model_class: EnergyForceModel 45 | model_name: PAiNN 46 | model_version: '' 47 | multi_target_indices: null 48 | number_histories: 1 49 | seed: 42 50 | time_list: 51 | - '0:17:39.003485' 52 | trajectory_name: benzene_ccsd_t 53 | val_energy_scaled_mean_absolute_error: 54 | - 0.006726829335093498 55 | val_force_scaled_mean_absolute_error: 56 | - 0.04271000623703003 57 | val_loss: 58 | - 0.01723838970065117 59 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/PAiNN_EnergyForceModel/PAiNN_MD17Dataset_score_ethanol_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: nt_win32 2 | backend: tensorflow 3 | cuda_available: 'False' 4 | data_unit: '' 5 | date_time: '2023-11-20 18:42:41' 6 | device_id: '[LogicalDevice(name=''/device:CPU:0'', device_type=''CPU'')]' 7 | device_memory: '[]' 8 | device_name: '[{}]' 9 | energy_scaled_mean_absolute_error: 10 | - 0.057577501982450485 11 | epochs: 12 | - 1000 13 | execute_folds: null 14 | force_scaled_mean_absolute_error: 15 | - 0.09392663091421127 16 | kgcnn_version: 4.0.0 17 | loss: 18 | - 0.019870324060320854 19 | max_energy_scaled_mean_absolute_error: 20 | - 14.250847816467285 21 | max_force_scaled_mean_absolute_error: 22 | - 17.35145378112793 23 | max_loss: 24 | - 3.727259397506714 25 | max_val_energy_scaled_mean_absolute_error: 26 | - 24.22459602355957 27 | max_val_force_scaled_mean_absolute_error: 28 | - 11.574352264404297 29 | max_val_loss: 30 | - 2.5840961933135986 31 | min_energy_scaled_mean_absolute_error: 32 | - 0.057520799338817596 33 | min_force_scaled_mean_absolute_error: 34 | - 0.09392663091421127 35 | min_loss: 36 | - 0.019870324060320854 37 | min_val_energy_scaled_mean_absolute_error: 38 | - 0.09087711572647095 39 | min_val_force_scaled_mean_absolute_error: 40 | - 0.5804547071456909 41 | min_val_loss: 42 | - 0.1241229772567749 43 | model_class: EnergyForceModel 44 | model_name: PAiNN 45 | model_version: '' 46 | multi_target_indices: null 47 | number_histories: 1 48 | seed: 42 49 | time_list: 50 | - '6:39:24.417198' 51 | trajectory_name: ethanol_ccsd_t 52 | val_energy_scaled_mean_absolute_error: 53 | - 0.09168438613414764 54 | val_force_scaled_mean_absolute_error: 55 | - 0.5804615616798401 56 | val_loss: 57 | - 0.12412581592798233 58 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/PAiNN_EnergyForceModel/PAiNN_MD17Dataset_score_malonaldehyde_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: posix_linux 2 | backend: tensorflow 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2024-01-25 10:55:36' 6 | device_id: '[LogicalDevice(name=''/device:CPU:0'', device_type=''CPU''), LogicalDevice(name=''/device:GPU:0'', 7 | device_type=''GPU'')]' 8 | device_memory: '[]' 9 | device_name: '[{}, {''compute_capability'': (7, 0), ''device_name'': ''Tesla V100-SXM2-32GB''}]' 10 | energy_scaled_mean_absolute_error: 11 | - 0.108326256275177 12 | epochs: 13 | - 1000 14 | execute_folds: null 15 | force_scaled_mean_absolute_error: 16 | - 0.1324000060558319 17 | kgcnn_version: 4.0.0 18 | loss: 19 | - 0.02997162938117981 20 | max_energy_scaled_mean_absolute_error: 21 | - 9.238640785217285 22 | max_force_scaled_mean_absolute_error: 23 | - 19.9771671295166 24 | max_loss: 25 | - 4.552161693572998 26 | max_val_energy_scaled_mean_absolute_error: 27 | - 18.43704605102539 28 | max_val_force_scaled_mean_absolute_error: 29 | - 14.447487831115723 30 | max_val_loss: 31 | - 3.3687236309051514 32 | min_energy_scaled_mean_absolute_error: 33 | - 0.10826544463634491 34 | min_force_scaled_mean_absolute_error: 35 | - 0.13237859308719635 36 | min_loss: 37 | - 0.02996666543185711 38 | min_val_energy_scaled_mean_absolute_error: 39 | - 0.14528214931488037 40 | min_val_force_scaled_mean_absolute_error: 41 | - 0.7742980718612671 42 | min_val_loss: 43 | - 0.1764606386423111 44 | model_class: EnergyForceModel 45 | model_name: PAiNN 46 | model_version: '' 47 | multi_target_indices: null 48 | number_histories: 1 49 | seed: 42 50 | time_list: 51 | - '0:17:02.875278' 52 | trajectory_name: malonaldehyde_ccsd_t 53 | val_energy_scaled_mean_absolute_error: 54 | - 0.14697757363319397 55 | val_force_scaled_mean_absolute_error: 56 | - 0.7749027013778687 57 | val_loss: 58 | - 0.1765810251235962 59 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/PAiNN_EnergyForceModel/PAiNN_MD17Dataset_score_toluene_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: posix_linux 2 | backend: tensorflow 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2024-01-16 04:12:09' 6 | device_id: '[LogicalDevice(name=''/device:CPU:0'', device_type=''CPU''), LogicalDevice(name=''/device:GPU:0'', 7 | device_type=''GPU'')]' 8 | device_memory: '[]' 9 | device_name: '[{}, {''compute_capability'': (7, 0), ''device_name'': ''Tesla V100-SXM2-32GB''}]' 10 | energy_scaled_mean_absolute_error: 11 | - 0.03285173699259758 12 | epochs: 13 | - 1000 14 | execute_folds: null 15 | force_scaled_mean_absolute_error: 16 | - 0.12179367244243622 17 | kgcnn_version: 4.0.0 18 | loss: 19 | - 0.02105969749391079 20 | max_energy_scaled_mean_absolute_error: 21 | - 18.0843448638916 22 | max_force_scaled_mean_absolute_error: 23 | - 16.618600845336914 24 | max_loss: 25 | - 2.9480459690093994 26 | max_val_energy_scaled_mean_absolute_error: 27 | - 10.387165069580078 28 | max_val_force_scaled_mean_absolute_error: 29 | - 10.291943550109863 30 | max_val_loss: 31 | - 1.8392095565795898 32 | min_energy_scaled_mean_absolute_error: 33 | - 0.032832562923431396 34 | min_force_scaled_mean_absolute_error: 35 | - 0.12179330736398697 36 | min_loss: 37 | - 0.02105969749391079 38 | min_val_energy_scaled_mean_absolute_error: 39 | - 0.052257902920246124 40 | min_val_force_scaled_mean_absolute_error: 41 | - 0.2815096080303192 42 | min_val_loss: 43 | - 0.04943711310625076 44 | model_class: EnergyForceModel 45 | model_name: PAiNN 46 | model_version: '' 47 | multi_target_indices: null 48 | number_histories: 1 49 | seed: 42 50 | time_list: 51 | - '0:19:00.800728' 52 | trajectory_name: toluene_ccsd_t 53 | val_energy_scaled_mean_absolute_error: 54 | - 0.052314795553684235 55 | val_force_scaled_mean_absolute_error: 56 | - 0.28150975704193115 57 | val_loss: 58 | - 0.0494372732937336 59 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/Schnet_EnergyForceModel/Schnet_MD17Dataset_score_aspirin_ccsd.yaml: -------------------------------------------------------------------------------- 1 | OS: nt_win32 2 | backend: torch 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2023-09-24 00:32:57' 6 | device_id: '[0]' 7 | device_memory: '[{''allocated'': 4.3, ''cached'': 6.9}]' 8 | device_name: '[''NVIDIA GeForce GTX 1060 6GB'']' 9 | energy_scaled_mean_absolute_error: 10 | - 0.6705390214920044 11 | epochs: 12 | - 1000 13 | execute_folds: null 14 | force_scaled_mean_absolute_error: 15 | - 0.9870715141296387 16 | kgcnn_version: 4.0.0 17 | learning_rate: 18 | - 6.721010777255287e-06 19 | loss: 20 | - 7.491568088531494 21 | max_energy_scaled_mean_absolute_error: 22 | - 43.9420280456543 23 | max_force_scaled_mean_absolute_error: 24 | - 23.12982177734375 25 | max_learning_rate: 26 | - 0.0010000000474974513 27 | max_loss: 28 | - 175.07359313964844 29 | max_val_energy_scaled_mean_absolute_error: 30 | - 89.704345703125 31 | max_val_force_scaled_mean_absolute_error: 32 | - 22.60744285583496 33 | max_val_loss: 34 | - 174.02117919921875 35 | min_energy_scaled_mean_absolute_error: 36 | - 0.5308452248573303 37 | min_force_scaled_mean_absolute_error: 38 | - 0.9855858087539673 39 | min_learning_rate: 40 | - 6.721010777255287e-06 41 | min_loss: 42 | - 7.472635269165039 43 | min_val_energy_scaled_mean_absolute_error: 44 | - 0.5970931053161621 45 | min_val_force_scaled_mean_absolute_error: 46 | - 1.2160941362380981 47 | min_val_loss: 48 | - 9.253174781799316 49 | model_class: EnergyForceModel 50 | model_name: Schnet 51 | model_version: '' 52 | multi_target_indices: null 53 | number_histories: 1 54 | seed: 42 55 | time_list: 56 | - '1:00:13.748350' 57 | trajectory_name: aspirin_ccsd 58 | val_energy_scaled_mean_absolute_error: 59 | - 0.8168062567710876 60 | val_force_scaled_mean_absolute_error: 61 | - 1.2173408269882202 62 | val_loss: 63 | - 9.295524597167969 64 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/Schnet_EnergyForceModel/Schnet_MD17Dataset_score_benzene_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: nt_win32 2 | backend: torch 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2023-09-29 13:59:15' 6 | device_id: '[0]' 7 | device_memory: '[{''allocated'': 0.0, ''cached'': 1.9}]' 8 | device_name: '[''NVIDIA GeForce GTX 1060 6GB'']' 9 | energy_scaled_mean_absolute_error: 10 | - 0.08433718234300613 11 | epochs: 12 | - 1000 13 | execute_folds: null 14 | force_scaled_mean_absolute_error: 15 | - 0.33310848474502563 16 | kgcnn_version: 4.0.0 17 | learning_rate: 18 | - 6.721010777255287e-06 19 | loss: 20 | - 6.704593181610107 21 | max_energy_scaled_mean_absolute_error: 22 | - 63.68236541748047 23 | max_force_scaled_mean_absolute_error: 24 | - 15.355721473693848 25 | max_learning_rate: 26 | - 0.0010000000474974513 27 | max_loss: 28 | - 312.07867431640625 29 | max_val_energy_scaled_mean_absolute_error: 30 | - 132.3892822265625 31 | max_val_force_scaled_mean_absolute_error: 32 | - 13.420501708984375 33 | max_val_loss: 34 | - 276.77655029296875 35 | min_energy_scaled_mean_absolute_error: 36 | - 0.07615616172552109 37 | min_force_scaled_mean_absolute_error: 38 | - 0.3325134217739105 39 | min_learning_rate: 40 | - 6.721010777255287e-06 41 | min_loss: 42 | - 6.694307804107666 43 | min_val_energy_scaled_mean_absolute_error: 44 | - 0.06437469273805618 45 | min_val_force_scaled_mean_absolute_error: 46 | - 0.33527231216430664 47 | min_val_loss: 48 | - 6.770595550537109 49 | model_class: EnergyForceModel 50 | model_name: Schnet 51 | model_version: '' 52 | multi_target_indices: null 53 | number_histories: 1 54 | seed: 42 55 | time_list: 56 | - '1:08:03.139785' 57 | trajectory_name: benzene_ccsd_t 58 | val_energy_scaled_mean_absolute_error: 59 | - 0.06532268971204758 60 | val_force_scaled_mean_absolute_error: 61 | - 0.33527231216430664 62 | val_loss: 63 | - 6.770595550537109 64 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/Schnet_EnergyForceModel/Schnet_MD17Dataset_score_ethanol_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: nt_win32 2 | backend: tensorflow 3 | cuda_available: 'False' 4 | data_unit: '' 5 | date_time: '2023-10-04 11:57:06' 6 | device_id: '[LogicalDevice(name=''/device:CPU:0'', device_type=''CPU'')]' 7 | device_memory: '[]' 8 | device_name: '[{}]' 9 | energy_scaled_mean_absolute_error: 10 | - 0.16987761855125427 11 | epochs: 12 | - 1000 13 | execute_folds: null 14 | force_scaled_mean_absolute_error: 15 | - 0.3668699264526367 16 | kgcnn_version: 4.0.0 17 | learning_rate: 18 | - 6.721010777255287e-06 19 | loss: 20 | - 0.3909856081008911 21 | max_energy_scaled_mean_absolute_error: 22 | - 19.745065689086914 23 | max_force_scaled_mean_absolute_error: 24 | - 20.290353775024414 25 | max_learning_rate: 26 | - 0.0010000000474974513 27 | max_loss: 28 | - 21.753780364990234 29 | max_val_energy_scaled_mean_absolute_error: 30 | - 39.790931701660156 31 | max_val_force_scaled_mean_absolute_error: 32 | - 19.341556549072266 33 | max_val_loss: 34 | - 21.1822509765625 35 | min_energy_scaled_mean_absolute_error: 36 | - 0.08012069761753082 37 | min_force_scaled_mean_absolute_error: 38 | - 0.3668699264526367 39 | min_learning_rate: 40 | - 6.721010777255287e-06 41 | min_loss: 42 | - 0.3909856081008911 43 | min_val_energy_scaled_mean_absolute_error: 44 | - 0.09135672450065613 45 | min_val_force_scaled_mean_absolute_error: 46 | - 0.4812542498111725 47 | min_val_loss: 48 | - 0.5163758397102356 49 | model_class: EnergyForceModel 50 | model_name: Schnet 51 | model_version: '' 52 | multi_target_indices: null 53 | number_histories: 1 54 | seed: 42 55 | time_list: 56 | - '1:08:06.797935' 57 | trajectory_name: ethanol_ccsd_t 58 | val_energy_scaled_mean_absolute_error: 59 | - 0.11028403788805008 60 | val_force_scaled_mean_absolute_error: 61 | - 0.48320215940475464 62 | val_loss: 63 | - 0.5181215405464172 64 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/Schnet_EnergyForceModel/Schnet_MD17Dataset_score_malonaldehyde_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: nt_win32 2 | backend: torch 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2023-09-27 12:49:04' 6 | device_id: '[0]' 7 | device_memory: '[{''allocated'': 0.7, ''cached'': 1.3}]' 8 | device_name: '[''NVIDIA GeForce GTX 1060 6GB'']' 9 | energy_scaled_mean_absolute_error: 10 | - 0.2375185340642929 11 | epochs: 12 | - 1000 13 | execute_folds: null 14 | force_scaled_mean_absolute_error: 15 | - 0.7120023369789124 16 | kgcnn_version: 4.0.0 17 | learning_rate: 18 | - 6.721010777255287e-06 19 | loss: 20 | - 8.379077911376953 21 | max_energy_scaled_mean_absolute_error: 22 | - 23.06218719482422 23 | max_force_scaled_mean_absolute_error: 24 | - 22.395734786987305 25 | max_learning_rate: 26 | - 0.0010000000474974513 27 | max_loss: 28 | - 255.0844268798828 29 | max_val_energy_scaled_mean_absolute_error: 30 | - 31.553268432617188 31 | max_val_force_scaled_mean_absolute_error: 32 | - 20.962806701660156 33 | max_val_loss: 34 | - 240.25169372558594 35 | min_energy_scaled_mean_absolute_error: 36 | - 0.2076147049665451 37 | min_force_scaled_mean_absolute_error: 38 | - 0.7120023369789124 39 | min_learning_rate: 40 | - 6.721010777255287e-06 41 | min_loss: 42 | - 8.143115043640137 43 | min_val_energy_scaled_mean_absolute_error: 44 | - 0.21374569833278656 45 | min_val_force_scaled_mean_absolute_error: 46 | - 0.8406388759613037 47 | min_val_loss: 48 | - 9.588348388671875 49 | model_class: EnergyForceModel 50 | model_name: Schnet 51 | model_version: '' 52 | multi_target_indices: null 53 | number_histories: 1 54 | seed: 42 55 | time_list: 56 | - '0:32:38.376736' 57 | trajectory_name: malonaldehyde_ccsd_t 58 | val_energy_scaled_mean_absolute_error: 59 | - 0.21374569833278656 60 | val_force_scaled_mean_absolute_error: 61 | - 0.844364583492279 62 | val_loss: 63 | - 9.62742805480957 64 | -------------------------------------------------------------------------------- /training/results/MD17Dataset/Schnet_EnergyForceModel/Schnet_MD17Dataset_score_toluene_ccsd_t.yaml: -------------------------------------------------------------------------------- 1 | OS: nt_win32 2 | backend: torch 3 | cuda_available: 'True' 4 | data_unit: '' 5 | date_time: '2023-09-27 11:34:07' 6 | device_id: '[0]' 7 | device_memory: '[{''allocated'': 1.7, ''cached'': 3.3}]' 8 | device_name: '[''NVIDIA GeForce GTX 1060 6GB'']' 9 | energy_scaled_mean_absolute_error: 10 | - 0.23176631331443787 11 | epochs: 12 | - 1000 13 | execute_folds: null 14 | force_scaled_mean_absolute_error: 15 | - 0.7013927102088928 16 | kgcnn_version: 4.0.0 17 | learning_rate: 18 | - 6.721010777255287e-06 19 | loss: 20 | - 6.1926655769348145 21 | max_energy_scaled_mean_absolute_error: 22 | - 75.01559448242188 23 | max_force_scaled_mean_absolute_error: 24 | - 21.44481658935547 25 | max_learning_rate: 26 | - 0.0010000000474974513 27 | max_loss: 28 | - 189.14373779296875 29 | max_val_energy_scaled_mean_absolute_error: 30 | - 65.19514465332031 31 | max_val_force_scaled_mean_absolute_error: 32 | - 20.32759666442871 33 | max_val_loss: 34 | - 183.26499938964844 35 | min_energy_scaled_mean_absolute_error: 36 | - 0.21180270612239838 37 | min_force_scaled_mean_absolute_error: 38 | - 0.7013061046600342 39 | min_learning_rate: 40 | - 6.721010777255287e-06 41 | min_loss: 42 | - 6.1623215675354 43 | min_val_energy_scaled_mean_absolute_error: 44 | - 0.2101193070411682 45 | min_val_force_scaled_mean_absolute_error: 46 | - 0.738879919052124 47 | min_val_loss: 48 | - 6.500094413757324 49 | model_class: EnergyForceModel 50 | model_name: Schnet 51 | model_version: '' 52 | multi_target_indices: null 53 | number_histories: 1 54 | seed: 42 55 | time_list: 56 | - '0:39:19.769528' 57 | trajectory_name: toluene_ccsd_t 58 | val_energy_scaled_mean_absolute_error: 59 | - 0.2446204572916031 60 | val_force_scaled_mean_absolute_error: 61 | - 0.7394698262214661 62 | val_loss: 63 | - 6.506496429443359 64 | -------------------------------------------------------------------------------- /training/results/MUTAGDataset/GAT/GAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GAT", "config": {"name": "GAT", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null], "name": "edge_attributes", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 2, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "MUTAGDataset", "module_name": "kgcnn.data.datasets.MUTAGDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/MUTAGDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null], "name": "edge_attributes", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 2, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "MUTAGDataset", "module_name": "kgcnn.data.datasets.MUTAGDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/MUTAGDataset/GCN/GCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GCN", "config": {"name": "GCN", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 25, "output_dim": 1}, "gcn_args": {"units": 140, "use_bias": true, "activation": "relu"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "MUTAGDataset", "module_name": "kgcnn.data.datasets.MUTAGDataset", "config": {}, "methods": [{"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/MUTAGDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 96, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": false, "normalization_technique": "graph_batch", "padded_disjoint": false}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "sigmoid", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 300, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 5800, "decay_rate": 0.5, "staircase": false}}}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "MUTAGDataset", "module_name": "kgcnn.data.datasets.MUTAGDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/MutagenicityDataset/GAT/GAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GAT", "config": {"name": "GAT", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null], "name": "edge_attributes", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "normalize_softmax": true, "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 4, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 2, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "MutagenicityDataset", "module_name": "kgcnn.data.datasets.MutagenicityDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/MutagenicityDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null], "name": "edge_attributes", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "kgcnn>leaky_relu", "normalize_softmax": true, "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_mean"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 200, "validation_freq": 2, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 0, "epo": 200, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "MutagenicityDataset", "module_name": "kgcnn.data.datasets.MutagenicityDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/MutagenicityDataset/GCN/GCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GCN", "config": {"name": "GCN", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 25, "output_dim": 1}, "gcn_args": {"units": 140, "use_bias": true, "activation": "relu"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "MutagenicityDataset", "module_name": "kgcnn.data.datasets.MutagenicityDataset", "config": {}, "methods": [{"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/MutagenicityDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null], "name": "node_attributes", "dtype": "int64"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 96, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph_batch", "padded_disjoint": false}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 1], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "sigmoid", "units": 1}}}, "training": {"fit": {"batch_size": 32, "epochs": 300, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 5800, "decay_rate": 0.5, "staircase": false}}}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "MutagenicityDataset", "module_name": "kgcnn.data.datasets.MutagenicityDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/PROTEINSDataset/GAT/GAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GAT", "config": {"name": "GAT", "inputs": [{"shape": [null, 3], "name": "node_labels", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "PROTEINSDataset", "module_name": "kgcnn.data.datasets.PROTEINSDataset", "config": {}, "methods": [{"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/PROTEINSDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null, 3], "name": "node_labels", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 2, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "PROTEINSDataset", "module_name": "kgcnn.data.datasets.PROTEINSDataset", "config": {}, "methods": [{"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/PROTEINSDataset/GCN/GCN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GCN", "config": {"name": "GCN", "inputs": [{"shape": [null, 3], "name": "node_labels", "dtype": "float32"}, {"shape": [null, 1], "name": "edge_weights", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 25, "output_dim": 1}, "gcn_args": {"units": 140, "use_bias": true, "activation": "relu"}, "depth": 5, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [140, 70, 1], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 800, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.001, "learning_rate_stop": 5e-05, "epo_min": 250, "epo": 800, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.001}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "PROTEINSDataset", "module_name": "kgcnn.data.datasets.PROTEINSDataset", "config": {}, "methods": [{"map_list": {"method": "normalize_edge_weights_sym"}}, {"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/PROTEINSDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 3], "name": "node_labels", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 800, "output_dim": 64}, "last_mlp": {"use_bias": [true], "units": [2], "activation": ["linear"]}, "depth": 5, "dropout": 0.5, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "relu"]}, "gin_args": {}, "output_embedding": "graph", "output_mlp": {"use_bias": true, "units": 1, "activation": "sigmoid"}}}, "training": {"fit": {"batch_size": 32, "epochs": 150, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.0005, "decay_steps": 1600, "decay_rate": 0.5, "staircase": false}}}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "multi_target_indices": null}, "dataset": {"class_name": "PROTEINSDataset", "module_name": "kgcnn.data.datasets.PROTEINSDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/QM7Dataset/NMPN/NMPN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.NMPN", "config": {"name": "NMPN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "set2set_args": {"channels": 32, "T": 3, "pooling_method": "sum", "init_qstar": "0"}, "pooling_args": {"pooling_method": "scatter_sum"}, "use_set2set": true, "depth": 3, "node_dim": 128, "verbose": 10, "geometric_edge": true, "make_distance": true, "expand_distance": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [25, 25, 1], "activation": ["selu", "selu", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 500, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 50, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.0005}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}]}}, "multi_target_indices": null}, "data": {"data_unit": "kcal/mol"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM7Dataset", "module_name": "kgcnn.data.datasets.QM7Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 4, "max_neighbours": 30}}]}} -------------------------------------------------------------------------------- /training/results/QM7Dataset/PAiNN/PAiNN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.PAiNN", "config": {"name": "PAiNN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "range_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 128}, "equiv_initialize_kwargs": {"dim": 3, "method": "eps"}, "bessel_basis": {"num_radial": 20, "cutoff": 5.0, "envelope_exponent": 5}, "pooling_args": {"pooling_method": "sum"}, "conv_args": {"units": 128, "cutoff": null}, "update_args": {"units": 128}, "depth": 3, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [128, 1], "activation": ["swish", "linear"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 872, "validation_freq": 10, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"class_name": "kgcnn>LinearWarmupExponentialDecay", "config": {"learning_rate": 0.001, "warmup_steps": 150.0, "decay_steps": 200000.0, "decay_rate": 0.01}}, "amsgrad": true, "use_ema": true}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}]}}, "multi_target_indices": null}, "data": {"data_unit": "kcal/mol"}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM7Dataset", "module_name": "kgcnn.data.datasets.QM7Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 5, "max_neighbours": 10000}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/NMPN/NMPN_hyper_G.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.NMPN", "config": {"name": "NMPN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "set2set_args": {"channels": 32, "T": 3, "pooling_method": "sum", "init_qstar": "0"}, "pooling_args": {"pooling_method": "scatter_sum"}, "use_set2set": true, "depth": 3, "node_dim": 128, "verbose": 10, "geometric_edge": true, "make_distance": true, "expand_distance": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [25, 25, 1], "activation": ["selu", "selu", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 700, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0001, "learning_rate_stop": 1e-05, "epo_min": 50, "epo": 700, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.0001}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "ExtensiveMolecularLabelScaler", "config": {}}]}}, "multi_target_indices": [13]}, "data": {}, "info": {"postfix": "", "postfix_file": "_G", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 4, "max_neighbours": 30}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/NMPN/NMPN_hyper_H.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.NMPN", "config": {"name": "NMPN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "set2set_args": {"channels": 32, "T": 3, "pooling_method": "sum", "init_qstar": "0"}, "pooling_args": {"pooling_method": "scatter_sum"}, "use_set2set": true, "depth": 3, "node_dim": 128, "verbose": 10, "geometric_edge": true, "make_distance": true, "expand_distance": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [25, 25, 1], "activation": ["selu", "selu", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 700, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0001, "learning_rate_stop": 1e-05, "epo_min": 50, "epo": 700, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.0001}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "ExtensiveMolecularLabelScaler", "config": {}}]}}, "multi_target_indices": [12]}, "data": {}, "info": {"postfix": "", "postfix_file": "_H", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 4, "max_neighbours": 30}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/NMPN/NMPN_hyper_HOMO.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.NMPN", "config": {"name": "NMPN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "set2set_args": {"channels": 32, "T": 3, "pooling_method": "sum", "init_qstar": "0"}, "pooling_args": {"pooling_method": "sum"}, "use_set2set": true, "depth": 3, "node_dim": 128, "verbose": 10, "geometric_edge": true, "make_distance": true, "expand_distance": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [25, 25, 1], "activation": ["selu", "selu", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 700, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0001, "learning_rate_stop": 1e-05, "epo_min": 50, "epo": 700, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.0001}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}]}}, "multi_target_indices": [5]}, "data": {}, "info": {"postfix": "", "postfix_file": "_HOMO", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 4, "max_neighbours": 30}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/NMPN/NMPN_hyper_LUMO.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.NMPN", "config": {"name": "NMPN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "set2set_args": {"channels": 32, "T": 3, "pooling_method": "sum", "init_qstar": "0"}, "pooling_args": {"pooling_method": "sum"}, "use_set2set": true, "depth": 3, "node_dim": 128, "verbose": 10, "geometric_edge": true, "make_distance": true, "expand_distance": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [25, 25, 1], "activation": ["selu", "selu", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 700, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0001, "learning_rate_stop": 1e-05, "epo_min": 50, "epo": 700, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.0001}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}]}}, "multi_target_indices": [6]}, "data": {}, "info": {"postfix": "", "postfix_file": "_LUMO", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 4, "max_neighbours": 30}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/NMPN/NMPN_hyper_U0.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.NMPN", "config": {"name": "NMPN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 5, "output_dim": 64}, "set2set_args": {"channels": 32, "T": 3, "pooling_method": "sum", "init_qstar": "0"}, "pooling_args": {"pooling_method": "scatter_sum"}, "use_set2set": true, "depth": 3, "node_dim": 128, "verbose": 10, "geometric_edge": true, "make_distance": true, "expand_distance": true, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [25, 25, 1], "activation": ["selu", "selu", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 700, "validation_freq": 10, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0001, "learning_rate_stop": 1e-05, "epo_min": 50, "epo": 700, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.0001}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "ExtensiveMolecularLabelScaler", "config": {}}]}}, "multi_target_indices": [10]}, "data": {}, "info": {"postfix": "", "postfix_file": "_U0", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 4, "max_neighbours": 30}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/PAiNN/PAiNN_hyper_G.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.PAiNN", "config": {"name": "PAiNN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "range_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "equiv_initialize_kwargs": {"dim": 3, "method": "eps", "units": 128}, "input_node_embedding": {"input_dim": 95, "output_dim": 128}, "bessel_basis": {"num_radial": 20, "cutoff": 5.0, "envelope_exponent": 5}, "pooling_args": {"pooling_method": "sum"}, "conv_args": {"units": 128, "cutoff": null}, "update_args": {"units": 128, "add_eps": true}, "depth": 3, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [128, 1], "activation": ["swish", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 872, "validation_freq": 10, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"class_name": "kgcnn>LinearWarmupExponentialDecay", "config": {"learning_rate": 0.001, "warmup_steps": 3000.0, "decay_steps": 4000000.0, "decay_rate": 0.01}}, "amsgrad": true, "use_ema": true}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "ExtensiveMolecularScaler", "config": {}}]}}, "multi_target_indices": [13]}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 5, "max_neighbours": 10000}}]}, "data": {}, "info": {"postfix": "", "postfix_file": "_G", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/PAiNN/PAiNN_hyper_H.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.PAiNN", "config": {"name": "PAiNN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "range_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "equiv_initialize_kwargs": {"dim": 3, "method": "eps", "units": 128}, "input_node_embedding": {"input_dim": 95, "output_dim": 128}, "bessel_basis": {"num_radial": 20, "cutoff": 5.0, "envelope_exponent": 5}, "pooling_args": {"pooling_method": "sum"}, "conv_args": {"units": 128, "cutoff": null}, "update_args": {"units": 128, "add_eps": true}, "depth": 3, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [128, 1], "activation": ["swish", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 872, "validation_freq": 10, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"class_name": "kgcnn>LinearWarmupExponentialDecay", "config": {"learning_rate": 0.001, "warmup_steps": 3000.0, "decay_steps": 4000000.0, "decay_rate": 0.01}}, "amsgrad": true, "use_ema": true}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "ExtensiveMolecularScaler", "config": {}}]}}, "multi_target_indices": [12]}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 5, "max_neighbours": 10000}}]}, "data": {}, "info": {"postfix": "", "postfix_file": "_H", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/PAiNN/PAiNN_hyper_HOMO.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.PAiNN", "config": {"name": "PAiNN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "range_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 128}, "bessel_basis": {"num_radial": 20, "cutoff": 5.0, "envelope_exponent": 5}, "pooling_args": {"pooling_method": "sum"}, "conv_args": {"units": 128, "cutoff": null}, "update_args": {"units": 128}, "depth": 3, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [128, 1], "activation": ["swish", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 872, "validation_freq": 10, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"class_name": "kgcnn>LinearWarmupExponentialDecay", "config": {"learning_rate": 0.001, "warmup_steps": 3000.0, "decay_steps": 4000000.0, "decay_rate": 0.01}}, "amsgrad": true, "use_ema": true}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}]}}, "multi_target_indices": [5]}, "data": {}, "info": {"postfix": "", "postfix_file": "_HOMO", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 5, "max_neighbours": 10000}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/PAiNN/PAiNN_hyper_LUMO.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.PAiNN", "config": {"name": "PAiNN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "range_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "input_node_embedding": {"input_dim": 95, "output_dim": 128}, "bessel_basis": {"num_radial": 20, "cutoff": 5.0, "envelope_exponent": 5}, "pooling_args": {"pooling_method": "sum"}, "conv_args": {"units": 128, "cutoff": null}, "update_args": {"units": 128}, "depth": 3, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [128, 1], "activation": ["swish", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 872, "validation_freq": 10, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"class_name": "kgcnn>LinearWarmupExponentialDecay", "config": {"learning_rate": 0.001, "warmup_steps": 3000.0, "decay_steps": 4000000.0, "decay_rate": 0.01}}, "amsgrad": true, "use_ema": true}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "StandardLabelScaler", "config": {"with_std": true, "with_mean": true, "copy": true}}]}}, "multi_target_indices": [6]}, "data": {}, "info": {"postfix": "", "postfix_file": "_LUMO", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 5, "max_neighbours": 10000}}]}} -------------------------------------------------------------------------------- /training/results/QM9Dataset/PAiNN/PAiNN_hyper_U0.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.PAiNN", "config": {"name": "PAiNN", "inputs": [{"shape": [null], "name": "node_number", "dtype": "int64", "ragged": true}, {"shape": [null, 3], "name": "node_coordinates", "dtype": "float32", "ragged": true}, {"shape": [null, 2], "name": "range_indices", "dtype": "int64", "ragged": true}], "input_tensor_type": "ragged", "input_embedding": null, "equiv_initialize_kwargs": {"dim": 3, "method": "eps", "units": 128}, "input_node_embedding": {"input_dim": 95, "output_dim": 128}, "bessel_basis": {"num_radial": 20, "cutoff": 5.0, "envelope_exponent": 5}, "pooling_args": {"pooling_method": "sum"}, "conv_args": {"units": 128, "cutoff": null}, "update_args": {"units": 128, "add_eps": true}, "depth": 3, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true], "units": [128, 1], "activation": ["swish", "linear"]}}}, "training": {"cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}, "fit": {"batch_size": 32, "epochs": 872, "validation_freq": 10, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"class_name": "kgcnn>LinearWarmupExponentialDecay", "config": {"learning_rate": 0.001, "warmup_steps": 3000.0, "decay_steps": 4000000.0, "decay_rate": 0.01}}, "amsgrad": true, "use_ema": true}}, "loss": "mean_absolute_error"}, "scaler": {"class_name": "QMGraphLabelScaler", "config": {"atomic_number": "node_number", "scaler": [{"class_name": "ExtensiveMolecularScaler", "config": {}}]}}, "multi_target_indices": [10]}, "dataset": {"class_name": "QM9Dataset", "module_name": "kgcnn.data.datasets.QM9Dataset", "config": {}, "methods": [{"map_list": {"method": "set_range", "max_distance": 5, "max_neighbours": 10000}}]}, "data": {}, "info": {"postfix": "", "postfix_file": "_U0", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/SIDERDataset/GAT/GAT_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GAT", "config": {"name": "GAT", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 1, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 27], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 50, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"multi_label": true, "num_labels": 27, "name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}, "dataset": {"class_name": "SIDERDataset", "module_name": "kgcnn.data.datasets.SIDERDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}} -------------------------------------------------------------------------------- /training/results/SIDERDataset/GATv2/GATv2_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GATv2", "config": {"name": "GATv2", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 11], "name": "edge_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {}, "input_node_embedding": {"input_dim": 95, "output_dim": 64}, "input_edge_embedding": {"input_dim": 8, "output_dim": 64}, "attention_args": {"units": 64, "use_bias": true, "use_edge_features": true, "activation": "relu", "use_final_activation": false, "has_self_loops": true}, "pooling_nodes_args": {"pooling_method": "scatter_sum"}, "depth": 4, "attention_heads_num": 10, "attention_heads_concat": false, "verbose": 10, "output_embedding": "graph", "output_mlp": {"use_bias": [true, true, false], "units": [64, 32, 27], "activation": ["relu", "relu", "sigmoid"]}}}, "training": {"fit": {"batch_size": 32, "epochs": 50, "validation_freq": 1, "verbose": 2, "callbacks": [{"class_name": "kgcnn>LinearLearningRateScheduler", "config": {"learning_rate_start": 0.0005, "learning_rate_stop": 1e-05, "epo_min": 250, "epo": 500, "verbose": 0}}]}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": 0.005}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"multi_label": true, "num_labels": 27, "name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "SIDERDataset", "module_name": "kgcnn.data.datasets.SIDERDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} -------------------------------------------------------------------------------- /training/results/SIDERDataset/GIN/GIN_hyper.json: -------------------------------------------------------------------------------- 1 | {"model": {"class_name": "make_model", "module_name": "kgcnn.literature.GIN", "config": {"name": "GIN", "inputs": [{"shape": [null, 41], "name": "node_attributes", "dtype": "float32"}, {"shape": [null, 2], "name": "edge_indices", "dtype": "int64"}, {"shape": [], "name": "total_nodes", "dtype": "int64"}, {"shape": [], "name": "total_edges", "dtype": "int64"}], "cast_disjoint_kwargs": {"padded_disjoint": false}, "input_node_embedding": {"input_dim": 96, "output_dim": 64}, "depth": 5, "dropout": 0.05, "gin_mlp": {"units": [64, 64], "use_bias": true, "activation": ["relu", "linear"], "use_normalization": true, "normalization_technique": "graph_batch", "padded_disjoint": false}, "gin_args": {}, "last_mlp": {"use_bias": true, "units": [64, 32, 32], "activation": ["relu", "relu", "linear"]}, "output_embedding": "graph", "output_mlp": {"activation": "sigmoid", "units": 27}}}, "training": {"fit": {"batch_size": 32, "epochs": 50, "validation_freq": 1, "verbose": 2, "callbacks": []}, "compile": {"optimizer": {"class_name": "Adam", "config": {"learning_rate": {"module": "keras_core.optimizers.schedules", "class_name": "ExponentialDecay", "config": {"initial_learning_rate": 0.001, "decay_steps": 5800, "decay_rate": 0.5, "staircase": false}}}}, "loss": "binary_crossentropy", "metrics": ["binary_accuracy", {"class_name": "AUC", "config": {"multi_label": true, "num_labels": 27, "name": "auc"}}]}, "cross_validation": {"class_name": "KFold", "config": {"n_splits": 5, "random_state": 42, "shuffle": true}}}, "dataset": {"class_name": "SIDERDataset", "module_name": "kgcnn.data.datasets.SIDERDataset", "config": {}, "methods": [{"map_list": {"method": "count_nodes_and_edges"}}]}, "data": {"data_unit": ""}, "info": {"postfix": "", "postfix_file": "", "kgcnn_version": "4.0.0"}} --------------------------------------------------------------------------------