Skip to content
heartKIT
User guide
HELIA

Configuration Parameters

For each mode, common configuration parameters, HKTaskParams, are required to run the task. These parameters are used to define the task, datasets, model, and other settings. Rather than defining separate configuration files for each mode, a single configuration object is used to simplify configuration files and heavy re-use of parameters between modes.

Quantization parameters define the quantization-aware training (QAT) and post-training quantization (PTQ) settings. This is used for modes: train, evaluate, export, and demo.

ArgumentTypeOpt/ReqDefaultDescription
enabledboolOptionalFalseEnable quantization
qatboolOptionalFalseEnable quantization aware training (QAT)
formatLiteral["int8", "int16", "float16"]Optionalint8Quantization mode
io_typestrOptionalint8I/O type
conversionLiteral["keras", "tflite"]OptionalkerasConversion method
debugboolOptionalFalseDebug quantization
fallbackboolOptionalFalseFallback to float32

Named parameters are used to provide custom parameters for a given object or callable where parameter types are not known ahead of time. For example, a dataset, ‘CustomDataset’, may require custom parameters such as ‘path’, ‘label’, ‘sampling_rate’, etc. When a task loads the dataset using name, the task will then unpack the custom parameters and pass them to the dataset initializer.

ArgumentTypeOpt/ReqDefaultDescription
namestrRequiredNamed parameters name
paramsdict[str, Any]Optional{}Named parameters
Python example
import heartkit as hk
class CustomDataset(hk.HKDataset):
def __init__(self, a: int = 1, b: int = 2) -> None:
self.a = a
self.b = b
hk.DatasetFactory.register("custom", CustomDataset)
params = hk.HKTaskParams(
datasets=[
hk.NamedParams(
name="custom",
params=dict(a=1, b=2)
)
]
)

These parameters are supplied to a Task when running a given mode such as train, evaluate, export, or demo. A single configuration object is used to simplify configuration files and heavy re-use of parameters between modes.

ArgumentTypeOpt/ReqDefaultDescriptionMode
namestrRequiredexperimentExperiment nameAll
projectstrRequiredheartkitProject nameAll
job_dirPathOptionaltempfile.gettempdirJob output directoryAll
datasetslist[NamedParams]OptionalDatasetsAll
force_downloadboolOptionalFalseForce download datasetsdownload
dataset_weightslist[float]|NoneOptionalNoneDataset weightstrain
sampling_rateintOptional250Target sampling rate (Hz)All
frame_sizeintOptional1250Frame size in samplesAll
samples_per_patientint|list[int]Optional1000# train samples per patienttrain
val_samples_per_patientint|list[int]Optional1000# validation samples per patienttrain
test_samples_per_patientint|list[int]Optional1000# test samples per patientevaluate
train_patientsfloat|NoneOptionalNone# or proportion of patients for trainingtrain
val_patientsfloat|NoneOptionalNone# or proportion of patients for validationtrain
test_patientsfloat|NoneOptionalNone# or proportion of patients for testingevaluate
val_filePath|NoneOptionalNonePath to load/store pickled validation filetrain
test_filePath|NoneOptionalNonePath to load/store pickled test fileevaluate, export
val_sizeint|NoneOptionalNone# samples for validationtrain
test_sizeintOptional10000# samples for testingevaluate, export
num_classesintOptional1# of classesAll
class_mapdict[int, int]OptionalClass/label mappingAll
class_nameslist[str]|NoneOptionalNoneClass namesAll
resumeboolOptionalFalseResume trainingtrain
architectureNamedParams|NoneOptionalNoneCustom model architecturetrain
model_filePath|NoneOptionalNonePath to load/save model file (.keras)All
use_logitsboolOptionalTrueUse logits output or softmaxExport
weights_filePath|NoneOptionalNonePath to a checkpoint weights to load/savetrain
quantizationQuantizationParamsOptionalQuantization parametersAll
lr_ratefloatOptional0.001Learning ratetrain
lr_cyclesintOptional3Number of learning rate cyclestrain
lr_decayfloatOptional0.9Learning rate decaytrain
label_smoothingfloatOptional0Label smoothingtrain
batch_sizeintOptional32Batch sizetrain
buffer_sizeintOptional100Buffer cache sizetrain
epochsintOptional50Number of epochstrain
steps_per_epochintOptional10Number of steps per epochtrain
val_steps_per_epochintOptional10Number of validation stepstrain
val_metricLiteral["loss", "acc", "f1"]OptionallossPerformance metrictrain
class_weightsLiteral["balanced", "fixed"]OptionalfixedClass weightstrain
thresholdfloat|NoneOptionalNoneModel output thresholdevaluate, export
val_metric_thresholdfloat|NoneOptional0.98Validation metric thresholdexport
test_metric_thresholdfloat|NoneOptional0.98Test metric thresholdexport
tflm_var_namestrOptionalg_modelTFLite Micro C variable nameexport
tflm_filePath|NoneOptionalNonePath to copy TFLM header file (e.g. ./model_buffer.h)export
backendstrOptionalpcBackenddemo
demo_sizeint|NoneOptional1000# samples for demodemo
display_reportboolOptionalTrueDisplay reportdemo
seedint|NoneOptionalNoneRandom state seedAll
data_parallelismintOptionalos.cpu_count# of data loaders running in parallelAll
verboseintOptional1Verbosity levelAll