Skip to content

mod_train_test_split

Lines: 93 | Visibility: private

Read/Calculate train/test split information for a given list of structure indices.

Dependencies

Uses

module~~mod_train_test_split~~UsesGraph module~mod_train_test_split mod_train_test_split module~mod_cost_epoch mod_cost_epoch module~mod_train_test_split->module~mod_cost_epoch module~mod_databatcher mod_databatcher module~mod_train_test_split->module~mod_databatcher module~mod_dataset_storage mod_dataset_storage module~mod_train_test_split->module~mod_dataset_storage module~mod_decorations mod_decorations module~mod_train_test_split->module~mod_decorations module~mod_mpi mod_mpi module~mod_train_test_split->module~mod_mpi module~mod_path mod_path module~mod_train_test_split->module~mod_path module~mod_settings mod_settings module~mod_train_test_split->module~mod_settings module~mod_sort mod_sort module~mod_train_test_split->module~mod_sort module~mod_split_data mod_split_data module~mod_train_test_split->module~mod_split_data module~mod_throw mod_throw module~mod_train_test_split->module~mod_throw module~mod_cost_epoch->module~mod_dataset_storage module~mod_cost_epoch->module~mod_decorations module~mod_cost_epoch->module~mod_mpi module~mod_cost_epoch->module~mod_throw ieee_arithmetic ieee_arithmetic module~mod_cost_epoch->ieee_arithmetic mod_property_list mod_property_list module~mod_cost_epoch->mod_property_list module~mod_committee_helper mod_committee_helper module~mod_cost_epoch->module~mod_committee_helper module~mod_io mod_io module~mod_cost_epoch->module~mod_io module~mod_loss_abstract mod_loss_abstract module~mod_cost_epoch->module~mod_loss_abstract module~mod_periodic_table mod_periodic_table module~mod_cost_epoch->module~mod_periodic_table module~mod_precision mod_precision module~mod_cost_epoch->module~mod_precision module~mod_set_integer mod_set_integer module~mod_cost_epoch->module~mod_set_integer module~mod_timer mod_timer module~mod_cost_epoch->module~mod_timer module~mod_databatcher->module~mod_mpi module~mod_databatcher->module~mod_throw module~mod_array_helpers mod_array_helpers module~mod_databatcher->module~mod_array_helpers module~mod_databatcher->module~mod_precision module~mod_random mod_random module~mod_databatcher->module~mod_random module~mod_dataset_storage->module~mod_mpi module~mod_dataset_storage->module~mod_sort module~mod_dataset_storage->mod_property_list module~mod_storage_container mod_storage_container module~mod_dataset_storage->module~mod_storage_container module~mod_decorations->module~mod_throw module~mod_decorations->module~mod_io module~mod_decorations->module~mod_precision module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_path->module~mod_io module~mod_settings->module~mod_throw module~mod_constants mod_constants module~mod_settings->module~mod_constants module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_settings->module~mod_io module~mod_settings->module~mod_periodic_table module~mod_settings->module~mod_precision module~mod_sort->module~mod_precision module~mod_split_data->module~mod_mpi module~mod_split_data->module~mod_throw module~mod_abstract_broadcast_file mod_abstract_broadcast_file module~mod_split_data->module~mod_abstract_broadcast_file module~mod_split_data->module~mod_io module~mod_throw->module~mod_mpi module~mod_throw->module~mod_sort iso_c_binding iso_c_binding module~mod_throw->iso_c_binding iso_fortran_env iso_fortran_env module~mod_throw->iso_fortran_env module~mod_throw->module~mod_io module~mod_throw->module~mod_precision module~mod_abstract_broadcast_file->module~mod_mpi module~mod_abstract_broadcast_file->module~mod_throw module~mod_abstract_broadcast_file->module~mod_io module~mod_genericfile mod_genericfile module~mod_abstract_broadcast_file->module~mod_genericfile module~mod_sanitize mod_sanitize module~mod_abstract_broadcast_file->module~mod_sanitize module~mod_array_helpers->module~mod_throw module~mod_array_helpers->module~mod_precision module~mod_committee_helper->module~mod_settings module~mod_committee_helper->module~mod_io module~mod_constants->iso_c_binding module~mod_constants->module~mod_precision module~mod_cpu_vendor->iso_c_binding module~mod_io->iso_fortran_env module~mod_io->module~mod_precision module~mod_optional_args mod_optional_args module~mod_io->module~mod_optional_args module~mod_loss_abstract->module~mod_mpi module~mod_loss_abstract->module~mod_precision module~mod_periodic_table->module~mod_throw module~mod_periodic_table->module~mod_array_helpers module~mod_periodic_table->module~mod_constants module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_precision module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_random->module~mod_constants module~mod_random->module~mod_precision module~mod_set_integer->module~mod_throw module~mod_storage_container->module~mod_mpi module~mod_storage_container->module~mod_sort module~mod_storage_container->mod_property_list module~mod_storage_container->module~mod_io module~mod_abstract_property_list mod_abstract_property_list module~mod_storage_container->module~mod_abstract_property_list module~mod_dynamic_int_array mod_dynamic_int_array module~mod_storage_container->module~mod_dynamic_int_array module~mod_string mod_string module~mod_storage_container->module~mod_string module~mod_timer->module~mod_throw module~mod_timer->ieee_arithmetic module~mod_timer->module~mod_io module~mod_timer->module~mod_precision module~mod_timer->module~mod_optional_args module~mod_abstract_property_list->module~mod_mpi module~mod_abstract_property_list->module~mod_throw module~mod_abstract_property_list->module~mod_dynamic_int_array module~mod_abstract_property_list->module~mod_optional_args module~mod_abstract_property_list->module~mod_string module~mod_dynamic_int_array_2d mod_dynamic_int_array_2d module~mod_abstract_property_list->module~mod_dynamic_int_array_2d module~mod_dynamic_string_array mod_dynamic_string_array module~mod_abstract_property_list->module~mod_dynamic_string_array module~mod_genericfile->module~mod_mpi module~mod_genericfile->module~mod_throw module~mod_genericfile->module~mod_io module~mod_sanitize->module~mod_throw module~mod_string->module~mod_precision module~mod_dynamic_int_array_2d->module~mod_mpi module~mod_dynamic_string_array->module~mod_string

Used By

module~~mod_train_test_split~~UsedByGraph module~mod_train_test_split mod_train_test_split module~mod_precompute_features_all_chunks mod_precompute_features_all_chunks module~mod_precompute_features_all_chunks->module~mod_train_test_split module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_train_test_split program~runner RuNNer program~runner->module~mod_precompute_features_all_chunks program~runner->module~mod_train_mode

Procedures Summary

Name Type Description
train_test_split Subroutine Split all given structures into a train and test set. Either reads the split from a file or...
train_test_split_atoms Subroutine Collect the ID of all atoms in the structures that were assigned to train and test set, respectively.

Procedure Details

subroutine train_test_split

subroutine train_test_split( &
    data_batcher, &
    structure_indices_all, &
    ids_train_test, &
    num_samples_train_test &
)

Split all given structures into a train and test set.

Either reads the split from a file or calculates a new one.

Arguments

  • data_batcher : class(DataBatcher) [inout]– The DataBatcher object provides the random number generator and the batching routines needed to split into train and test split.
  • structure_indices_all : integer (dim: (:)) [in]– Contains all structure indices. In the case of Training the array is just [1, 2, 3, ..., n] for n structures.
  • ids_train_test : integer (dim: (:,:)) [out]– Contains the structure indices for all structures in the train and test set. Size is max(size(ids_train), size(ids_test)) x 2. ids_train_test(:, 1) contains the training indices, ids_train_test(:, 2) contains the test indices.
  • num_samples_train_test : integer (dim: (:)) [out]– Size is always 2. num_samples_train_test(1) = size(ids_train) num_samples_train_test(2) = size(ids_test) Array is used as upper bound to the first dimension of ids_train_test.

Called By

proc~~train_test_split~~CalledByGraph proc~train_test_split mod_train_test_split::train_test_split proc~precompute_features_all_chunks mod_precompute_features_all_chunks::precompute_features_all_chunks proc~precompute_features_all_chunks->proc~train_test_split proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_test_split program~runner RuNNer program~runner->proc~precompute_features_all_chunks program~runner->proc~train_mode

subroutine train_test_split_atoms

subroutine train_test_split_atoms( &
    results_ref, &
    num_samples_train_test, &
    ids_train_test, &
    ids_train_test_atom, &
    num_samples_train_test_atom &
)

Collect the ID of all atoms in the structures that were assigned to train and test set, respectively.

Arguments

  • results_ref : type(DatasetStorage) [in]– A filled storage object containing the number of atoms for all structures in the dataset. This must be populated with all structures that are used for fitting across all MPI processes (this routine only runs on the root process). We expect this array to be sorted by structure ID, otherwise the mapping will be off. Usually, this means that the `reference_properties` array should be used that we read continuously from the input.data file.
  • num_samples_train_test : integer (dim: (2)) [in]– The number of samples in the train and test set for the structures (from `train_test_split`).
  • ids_train_test : integer (dim: (maxval(num_samples_train_test),2)) [in]– The IDs of all structures in the train and test set (from `train_test_split`).
  • ids_train_test_atom : integer (dim: (:,:)) [out]– The IDs of all atoms belonging to the structures in the train and test set.
  • num_samples_train_test_atom : integer (dim: (:)) [out]– The number of atoms in the train and test set (will be allocated to 2).

Called By

proc~~train_test_split_atoms~~CalledByGraph proc~train_test_split_atoms mod_train_test_split::train_test_split_atoms proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_test_split_atoms program~runner RuNNer program~runner->proc~train_mode