loss.out
This files contains the terms that enter the loss function, written every output_interval generations (100 by default).
File format
The file starts with a header of lines beginning with #:
# format_version 1
# output_interval 100
# columns generation total L1 L2 rmse_energy_train ...
format_versionis the version of the file format.output_intervalis the number of generations between two rows.columnslists the names of the columns in each row.
Each run writes this header before its rows. A file that a restarted run appends to thus contains several headers.
If a potential model is trained, the columns are:
generation total L1 L2 rmse_energy_train rmse_force_train rmse_virial_train rmse_energy_test rmse_force_test rmse_virial_test
where
generationis the current generation.totalis the total loss function.L1is the loss function related to the \(\mathcal{L}_1\) regularization.L2is the loss function related to the \(\mathcal{L}_2\) regularization.rmse_energy_trainis the energy RMSE (in units of eV/atom) for the training set.rmse_force_trainis the force RMSE (in units of eV/Å) for the training set.rmse_virial_trainis the virial RMSE (in units of eV/atom) for the training set.rmse_energy_testis the energy RMSE (in units of eV/atom) for the test set.rmse_force_testis the force RMSE (in units of eV/Å) for the test set.rmse_virial_testis the virial RMSE (in units of eV/atom) for the test set.
If a potential model with charges (charge_mode or charge_vdw) is trained, the columns are:
generation total L1 L2 rmse_energy_train rmse_force_train rmse_virial_train rmse_charge_train rmse_bec_train rmse_energy_test rmse_force_test rmse_virial_test rmse_charge_test rmse_bec_test
where
rmse_charge_trainandrmse_charge_testare the RMSE of the total charge (in units of e/atom) for the training and test sets.rmse_bec_trainandrmse_bec_testare the BEC RMSE (in units of e) for the training and test sets.
If the energy-difference loss is active through the keyword lambda_d, the columns of a potential model are followed by:
rmse_ediff_train rmse_ediff_test
where
rmse_ediff_trainis the RMSE of the energy combinations (in units of eV) over the training combinations of ediff.in in the mini-batch of the current generation, like the other training columns. Each squared error enters with the weight of its combination, and the sum is divided by the number of combinations.totalcontains it multiplied by \(\lambda_d\). It is 0 for a mini-batch without training combinations.rmse_ediff_testis the same RMSE over all test combinations, since the test set forms a single batch. It is 0 without a test set or without test combinations.
If a dipole model is trained, the columns are:
generation total L1 L2 rmse_dipole_train rmse_dipole_test
where
rmse_dipole_trainis the dipole RMSE (per atom) for the training set.rmse_dipole_testis the dipole RMSE (per atom) for the test set.
If a polarizability model is trained, the columns are:
generation total L1 L2 rmse_polarizability_train rmse_polarizability_test
where
rmse_polarizability_trainis the polarizability RMSE (per atom) for the training set.rmse_polarizability_testis the polarizability RMSE (per atom) for the test set.
If a Spin NEP potential is trained, each row contains the following fields:
generation total L1 L2 rmse_energy_train rmse_force_train rmse_virial_train rmse_mforce_train rmse_tau_train rmse_energy_test rmse_force_test rmse_virial_test rmse_mforce_test rmse_tau_test
Here, rmse_mforce is the Cartesian magnetic-force RMSE in eV/muB and
rmse_tau is the RMSE of
\(\boldsymbol{s}_i\times\boldsymbol{M}_i\), in eV.
Only structures containing magnetic-force labels contribute to these two
terms. The grouped magnetic-response loss, when enabled, contributes to
total but currently has no separate output column.
With independent magnetic losses, four additional columns precede any energy-difference columns:
rmse_m_parallel_train rmse_m_perp_train rmse_m_parallel_test rmse_m_perp_test
They report unweighted RMSE in eV/muB, normalized by one parallel or two
perpendicular degrees of freedom. Training columns describe the current batch;
test columns are zero if no test set is supplied. Use the # columns header
to identify columns for the selected objective.