Inference TOML#
Inference process configurations are defined through a TOML-formatted file, where each key systematically governs specific aspects of the computational workflow.
infer.toml:
# ----------------------------- SYSTEM -----------------------------
[system]
note = "Enjoy DeepH-pack! ;-)"
device = "gpu*8:0"
float_type = "fp32"
random_seed = 137
log_level = "info"
jax_memory_preallocate = true
# ------------------------------ DATA -------------------------------
[data]
inputs_dir = "./user/should/set/this/inputs"
outputs_dir = "./user/should/set/this/outputs"
[data.dft]
data_dir_depth = 0
[data.graph]
dataset_name = "INFER-DEMO"
graph_type = "S"
storage_type = "memory"
parallel_num = -1
only_save_graph = false
# ----------------------------- MODEL -------------------------------
[model]
model_dir = "./user/should/set/this"
load_model_type = "best"
load_model_epoch = -1
# ---------------------------- PROCESS ------------------------------
[process.infer]
output_type = "h5"
output_into = "to_output"
target_symmetrize = true
multi_way_jit_num = 1
[process.infer.dataloader]
batch_size = 1
Next, we will go through the semantics of these parameters in the TOML file in detail.
System#
[system.note]
Description and behavior are the same as in the training configuration.
[system.device]
Description and behavior are the same as in the training configuration.
[system.float_type]
Description and behavior are the same as in the training configuration.
[system.random_seed]
Description and behavior are the same as in the training configuration.
[system.log_level]
Description and behavior are the same as in the training configuration.
[system.jax_memory_preallocate]
Description and behavior are the same as in the training configuration.
Data#
[data.inputs_dir]
Description and behavior are the same as in the training configuration.
[data.outputs_dir]
Description and behavior are the same as in the training configuration.
[data.dft.data_dir_depth]
Description and behavior are the same as in the training configuration.
[data.graph.dataset_name]
Description and behavior are the same as in the training configuration.
[data.graph.graph_type]
Description: The physical quantities needed for inference. DeepH will build a corresponding graph file. One can choose from
SapandS. TheSfor overlap,Sapfor overlap but do not calculate mask using overlap values.Default:
"S"Type: [
"Sap","S"]
[data.graph.storage_type]
Description and behavior are the same as in the training configuration.
[data.graph.parallel_num]
Description and behavior are the same as in the training configuration.
[data.graph.only_save_graph]
Description and behavior are the same as in the training configuration.
Model#
[model.model_dir]
Description: The directory storing the trained model, usually with the format of
<time_stamp>/model.Default:
<Invalid-Input>Type:
<STRING>
[model.load_model_type]
Description: Infer with
bestorlatesttrained model.Default:
"best"Type: [
"best","latest"]
[model.load_model_epoch]
Description: For
load_model_type="latest"only. Specify a number for a particular epoch saved in the latest model folder. Use-1for the most recent epoch.Default:
-1Type:
<INT>
Process: Infer#
[process.infer.output_type]
Description: The output file format.
Default:
"h5"Type: [
"h5","petsc"]
[process.infer.output_into]
Description: Location for storing the predicted data. One can choose from a new folder under the output path (
<time_stamp>/dft) or the original data folder (<inputs>/dft). The output Hamiltonians are named ashamiltonian_pred.h5.Default:
"to_output"Type: [
"to_output","to_input"]
[process.infer.target_symmetrize]
Description: Whether to symmetrize the predicted target (e.g., to hermitianize the Hamiltonian).
Default:
trueType:
<BOOL>
[process.infer.multi_way_jit_num]
Description and behavior are the same as the training parameter process.train.multi_way_jit_num.
Process: Infer: Dataloader#
[process.infer.dataloader.batch_size]
Description: Batch size for inference. Can be significantly larger than the training batch size.
Default:
1Type:
<INT>