{
    "name": "arr-4-eff-sm-ei",
    "project": "hk-rhythm-4",
    "job_dir": "./results/arr-4-eff-sm-ei",
    "verbose": 2,

    "datasets": [{
        "name": "lsad",
        "params": {
            "path": "./datasets/lsad"
        }
    }],

    "sampling_rate": 100,
    "frame_size": 500,

    "num_classes": 4,
    "class_map": {
        "0": 0,
        "1": 1,
        "7": 2,
        "8": 2,
        "2": 3,
        "5": 3
    },
    "class_names": [
        "SR", "SB", "AFIB", "GSVT"
    ],

    "samples_per_patient": [5, 5, 5, 10],
    "val_samples_per_patient": [5, 5, 5, 10],
    "test_samples_per_patient": [5, 5, 5, 10],

    "val_size": 40000,
    "test_size": 40000,
    "val_file": "val.tfds",
    "test_file": "val.tfds",

    "lr_rate": 1e-3,
    "lr_cycles": 1,
    "batch_size": 256,
    "buffer_size": 50000,
    "epochs": 200,
    "steps_per_epoch": 50,
    "val_metric": "loss",
    "val_patients": 0.20,
    "class_weights": "balanced",

    "threshold": 0.5,

    "test_metric": "f1",
    "test_metric_threshold": 0.02,
    "tflm_var_name": "g_rhythm_model",
    "tflm_file": "rhythm_model_buffer.h",

    "backend": "pc",
    "demo_size": 800,
    "display_report": true,

    "quantization": {
        "qat": false,
        "mode": "FP32",
        "io_type": "float32",
        "concrete": true,
        "debug": false
    },

    "preprocesses": [
        {
            "name": "layer_norm",
            "params": {
                "epsilon": 0.01,
                "name": "znorm"
            }
        }
    ],

    "augmentations-dis": [{
        "name": "random_noise_distortion",
        "params": {
            "amplitude": [0.01, 0.5],
            "frequency": [0.5, 1.5],
            "name": "baseline_wander"
        }
    },{
        "name": "random_sine_wave",
        "params": {
            "amplitude": [0.01, 0.05],
            "frequency": [45, 50],
            "auto_vectorize": false,
            "name": "powerline_noise"
        }
    },{
        "name": "amplitude_warp",
        "params": {
            "amplitude": [0.99, 1.01],
            "frequency": [0.5, 1.5],
            "name": "amplitude_warp"
        }
    }, {
        "name": "random_noise",
        "params": {
            "factor": [0.005, 0.05],
            "name": "random_noise"
        }
    }, {
        "name": "random_background_noise",
        "params": {
            "amplitude": [0.005, 0.1],
            "num_noises": 1,
            "name": "nstdb"
        }
    },{
        "name": "random_cutout",
        "params": {
            "cutouts": 2,
            "factor": [0.005, 0.01],
            "name": "cutout"
        }
    }],

    "model_file": "model.keras",
    "use_logits": false,
    "architecture": {
        "name": "efficientnetv2",
        "params": {
            "input_filters": 16,
            "input_kernel_size": [1, 9],
            "input_strides": [1, 2],
            "blocks": [
                {"filters": 24, "depth": 1, "kernel_size": [1, 9], "strides": [1, 2], "ex_ratio": 1,  "se_ratio": 4},
                {"filters": 32, "depth": 1, "kernel_size": [1, 9], "strides": [1, 2], "ex_ratio": 1,  "se_ratio": 4},
                {"filters": 48, "depth": 1, "kernel_size": [1, 9], "strides": [1, 2], "ex_ratio": 1,  "se_ratio": 4},
                {"filters": 64, "depth": 1, "kernel_size": [1, 9], "strides": [1, 2], "ex_ratio": 1,  "se_ratio": 4},
                {"filters": 80, "depth": 1, "kernel_size": [1, 9], "strides": [1, 2], "ex_ratio": 1,  "se_ratio": 4}
            ],
            "output_filters": 0,
            "include_top": true,
            "use_logits": true
        }
    }
}
