RitualCNN / metrics.json
ethanzxv's picture
Retrain RitualCNN with audited split and validation report
1914b20 verified
Raw History Blame Contribute Delete
15.5 kB
{
"model": "RitualCNN",
"seed": 42,
"input_shape": [
1,
1,
128,
128
],
"labels": [
"Acervus",
"Avarus",
"Flosculus",
"Mutus",
"Not",
"Pudor",
"Regium"
],
"dataset": {
"source_image_files": 163,
"class_counts": {
"Acervus": {
"train": 22,
"validation": 5
},
"Avarus": {
"train": 12,
"validation": 3
},
"Flosculus": {
"train": 20,
"validation": 5
},
"Mutus": {
"train": 18,
"validation": 5
},
"Not": {
"train": 19,
"validation": 5
},
"Pudor": {
"train": 13,
"validation": 3
},
"Regium": {
"train": 26,
"validation": 7
}
},
"integrity_audit": {
"source_files": 163,
"train_validation_overlap": 0,
"byte_identical_duplicate_groups": 0,
"identical_preprocessed_input_groups": 0,
"dataset_fingerprint_sha256": "7aef6ce783ea2e6839bfc28aa147ae794907a9d1b1784ede1bd0059978e460bc"
}
},
"split": {
"strategy": "Stratified random split by class at source-file level, before augmentation.",
"seed": 42,
"training_images": 130,
"validation_images": 33,
"training_files": [
"ritualcnn/data/acervus/Canvas_20251014_122917.png",
"ritualcnn/data/acervus/Canvas_20251014_122943.png",
"ritualcnn/data/acervus/Canvas_20251014_123009.png",
"ritualcnn/data/acervus/Canvas_20251014_123245.png",
"ritualcnn/data/acervus/Canvas_20251014_123643.png",
"ritualcnn/data/acervus/Canvas_20251014_123729.png",
"ritualcnn/data/acervus/Canvas_20251014_123754.png",
"ritualcnn/data/acervus/Canvas_20251014_130341.png",
"ritualcnn/data/acervus/Canvas_20251014_130359.png",
"ritualcnn/data/acervus/Canvas_20251014_130415.png",
"ritualcnn/data/acervus/Canvas_20251014_130427.png",
"ritualcnn/data/acervus/Canvas_20251014_130447.png",
"ritualcnn/data/acervus/Canvas_20251014_130502.png",
"ritualcnn/data/acervus/acervus-ritual.png",
"ritualcnn/data/acervus/acervus-ritual2.png",
"ritualcnn/data/acervus/acervus-ritual3.png",
"ritualcnn/data/acervus/acervus-ritual4.png",
"ritualcnn/data/acervus/acervus-ritual5.png",
"ritualcnn/data/acervus/acervus-ritual6.png",
"ritualcnn/data/acervus/acervus-ritual7.png",
"ritualcnn/data/acervus/acervus-ritual8.png",
"ritualcnn/data/acervus/acervus-ritual9.png",
"ritualcnn/data/avarus/avarus-ritual.png",
"ritualcnn/data/avarus/avarus-ritual10.png",
"ritualcnn/data/avarus/avarus-ritual11.png",
"ritualcnn/data/avarus/avarus-ritual12.png",
"ritualcnn/data/avarus/avarus-ritual13.png",
"ritualcnn/data/avarus/avarus-ritual14.png",
"ritualcnn/data/avarus/avarus-ritual15.png",
"ritualcnn/data/avarus/avarus-ritual2.png",
"ritualcnn/data/avarus/avarus-ritual5.png",
"ritualcnn/data/avarus/avarus-ritual6.png",
"ritualcnn/data/avarus/avarus-ritual8.png",
"ritualcnn/data/avarus/avarus-ritual9.png",
"ritualcnn/data/flosculus/flosculus-ritual.png",
"ritualcnn/data/flosculus/flosculus-ritual10.png",
"ritualcnn/data/flosculus/flosculus-ritual11.png",
"ritualcnn/data/flosculus/flosculus-ritual12.png",
"ritualcnn/data/flosculus/flosculus-ritual13.png",
"ritualcnn/data/flosculus/flosculus-ritual14.png",
"ritualcnn/data/flosculus/flosculus-ritual15.png",
"ritualcnn/data/flosculus/flosculus-ritual16.png",
"ritualcnn/data/flosculus/flosculus-ritual17.png",
"ritualcnn/data/flosculus/flosculus-ritual18.png",
"ritualcnn/data/flosculus/flosculus-ritual20.png",
"ritualcnn/data/flosculus/flosculus-ritual21.png",
"ritualcnn/data/flosculus/flosculus-ritual22.png",
"ritualcnn/data/flosculus/flosculus-ritual24.png",
"ritualcnn/data/flosculus/flosculus-ritual25.png",
"ritualcnn/data/flosculus/flosculus-ritual3.png",
"ritualcnn/data/flosculus/flosculus-ritual6.png",
"ritualcnn/data/flosculus/flosculus-ritual7.png",
"ritualcnn/data/flosculus/flosculus-ritual8.png",
"ritualcnn/data/flosculus/flosculus-ritual9.png",
"ritualcnn/data/mutus/Canvas_20251014_123308.png",
"ritualcnn/data/mutus/Canvas_20251014_152157.png",
"ritualcnn/data/mutus/Canvas_20251014_152211.png",
"ritualcnn/data/mutus/Canvas_20251014_152235.png",
"ritualcnn/data/mutus/Canvas_20251014_152310.png",
"ritualcnn/data/mutus/Canvas_20251014_152433.png",
"ritualcnn/data/mutus/Canvas_20251014_152445.png",
"ritualcnn/data/mutus/Canvas_20251014_152453.png",
"ritualcnn/data/mutus/mutus-ritual.png",
"ritualcnn/data/mutus/mutus-ritual10.png",
"ritualcnn/data/mutus/mutus-ritual11.png",
"ritualcnn/data/mutus/mutus-ritual12.png",
"ritualcnn/data/mutus/mutus-ritual2.png",
"ritualcnn/data/mutus/mutus-ritual3.png",
"ritualcnn/data/mutus/mutus-ritual6.png",
"ritualcnn/data/mutus/mutus-ritual7.png",
"ritualcnn/data/mutus/mutus-ritual8.png",
"ritualcnn/data/mutus/mutus-ritual9.png",
"ritualcnn/data/not_a/Canvas_20251014_130619.png",
"ritualcnn/data/not_a/Canvas_20251014_130626.png",
"ritualcnn/data/not_a/Canvas_20251014_130635.png",
"ritualcnn/data/not_a/Canvas_20251014_130745.png",
"ritualcnn/data/not_a/Canvas_20251014_130755.png",
"ritualcnn/data/not_a/Canvas_20251014_130810.png",
"ritualcnn/data/not_a/Canvas_20251014_130823.png",
"ritualcnn/data/not_a/not_a_ritual.png",
"ritualcnn/data/not_a/not_a_ritual11.png",
"ritualcnn/data/not_a/not_a_ritual13.png",
"ritualcnn/data/not_a/not_a_ritual14.png",
"ritualcnn/data/not_a/not_a_ritual2.png",
"ritualcnn/data/not_a/not_a_ritual3.png",
"ritualcnn/data/not_a/not_a_ritual4.png",
"ritualcnn/data/not_a/not_a_ritual5.png",
"ritualcnn/data/not_a/not_a_ritual6.png",
"ritualcnn/data/not_a/not_a_ritual7.png",
"ritualcnn/data/not_a/not_a_ritual8.png",
"ritualcnn/data/not_a/not_a_ritual9.png",
"ritualcnn/data/pudor/Canvas_20251014_123443.png",
"ritualcnn/data/pudor/Canvas_20251014_123455.png",
"ritualcnn/data/pudor/Canvas_20251014_123538.png",
"ritualcnn/data/pudor/Canvas_20251014_123542.png",
"ritualcnn/data/pudor/Canvas_20251014_123554.png",
"ritualcnn/data/pudor/pudor-ritual.png",
"ritualcnn/data/pudor/pudor-ritual10.png",
"ritualcnn/data/pudor/pudor-ritual2.png",
"ritualcnn/data/pudor/pudor-ritual3.png",
"ritualcnn/data/pudor/pudor-ritual5.png",
"ritualcnn/data/pudor/pudor-ritual6.png",
"ritualcnn/data/pudor/pudor-ritual7.png",
"ritualcnn/data/pudor/pudor-ritual9.png",
"ritualcnn/data/regium/regium-ritual.png",
"ritualcnn/data/regium/regium-ritual10.png",
"ritualcnn/data/regium/regium-ritual11.png",
"ritualcnn/data/regium/regium-ritual12.png",
"ritualcnn/data/regium/regium-ritual13.png",
"ritualcnn/data/regium/regium-ritual14.png",
"ritualcnn/data/regium/regium-ritual15.png",
"ritualcnn/data/regium/regium-ritual16.png",
"ritualcnn/data/regium/regium-ritual17.png",
"ritualcnn/data/regium/regium-ritual18.png",
"ritualcnn/data/regium/regium-ritual2.png",
"ritualcnn/data/regium/regium-ritual21.png",
"ritualcnn/data/regium/regium-ritual22.png",
"ritualcnn/data/regium/regium-ritual23.png",
"ritualcnn/data/regium/regium-ritual24.png",
"ritualcnn/data/regium/regium-ritual25.png",
"ritualcnn/data/regium/regium-ritual27.png",
"ritualcnn/data/regium/regium-ritual28.png",
"ritualcnn/data/regium/regium-ritual3.png",
"ritualcnn/data/regium/regium-ritual31.png",
"ritualcnn/data/regium/regium-ritual32.png",
"ritualcnn/data/regium/regium-ritual33.png",
"ritualcnn/data/regium/regium-ritual5.png",
"ritualcnn/data/regium/regium-ritual6.png",
"ritualcnn/data/regium/regium-ritual7.png",
"ritualcnn/data/regium/regium-ritual9.png"
],
"validation_files": [
"ritualcnn/data/acervus/Canvas_20251014_122828.png",
"ritualcnn/data/acervus/Canvas_20251014_122955.png",
"ritualcnn/data/acervus/Canvas_20251014_123700.png",
"ritualcnn/data/acervus/Canvas_20251014_123809.png",
"ritualcnn/data/acervus/Canvas_20251014_130518.png",
"ritualcnn/data/avarus/avarus-ritual3.png",
"ritualcnn/data/avarus/avarus-ritual4.png",
"ritualcnn/data/avarus/avarus-ritual7.png",
"ritualcnn/data/flosculus/flosculus-ritual19.png",
"ritualcnn/data/flosculus/flosculus-ritual2.png",
"ritualcnn/data/flosculus/flosculus-ritual23.png",
"ritualcnn/data/flosculus/flosculus-ritual4.png",
"ritualcnn/data/flosculus/flosculus-ritual5.png",
"ritualcnn/data/mutus/Canvas_20251014_152223.png",
"ritualcnn/data/mutus/Canvas_20251014_152246.png",
"ritualcnn/data/mutus/Canvas_20251014_152258.png",
"ritualcnn/data/mutus/mutus-ritual4.png",
"ritualcnn/data/mutus/mutus-ritual5.png",
"ritualcnn/data/not_a/Canvas_20251014_130643.png",
"ritualcnn/data/not_a/Canvas_20251014_130805.png",
"ritualcnn/data/not_a/Canvas_20251014_130815.png",
"ritualcnn/data/not_a/not_a_ritual10.png",
"ritualcnn/data/not_a/not_a_ritual12.png",
"ritualcnn/data/pudor/Canvas_20251014_123525.png",
"ritualcnn/data/pudor/pudor-ritual4.png",
"ritualcnn/data/pudor/pudor-ritual8.png",
"ritualcnn/data/regium/regium-ritual19.png",
"ritualcnn/data/regium/regium-ritual20.png",
"ritualcnn/data/regium/regium-ritual26.png",
"ritualcnn/data/regium/regium-ritual29.png",
"ritualcnn/data/regium/regium-ritual30.png",
"ritualcnn/data/regium/regium-ritual4.png",
"ritualcnn/data/regium/regium-ritual8.png"
]
},
"training": {
"epochs_requested": 60,
"best_epoch": 47,
"early_stopping_patience": 10,
"batch_size": 16,
"deterministic_algorithms": true,
"shuffle_seed": 42,
"optimizer": "Adam",
"learning_rate": 0.001,
"weight_decay": 0.0001,
"loss": "class-weighted cross-entropy",
"augmentation": "On-the-fly, training split only: random rotation up to 15 degrees and translation up to 12 pixels, independently with 50% probability.",
"seconds": 70.76,
"pytorch_version": "2.8.0+cpu"
},
"validation_loss": 1.158913,
"validation": {
"accuracy": 0.6364,
"macro_f1": 0.5978,
"classes_present": [
"Acervus",
"Avarus",
"Flosculus",
"Mutus",
"Not",
"Pudor",
"Regium"
],
"per_class": {
"Acervus": {
"support": 5,
"precision": 1.0,
"recall": 0.4,
"f1": 0.5714
},
"Avarus": {
"support": 3,
"precision": 0.75,
"recall": 1.0,
"f1": 0.8571
},
"Flosculus": {
"support": 5,
"precision": 0.5556,
"recall": 1.0,
"f1": 0.7143
},
"Mutus": {
"support": 5,
"precision": 0.0,
"recall": 0.0,
"f1": 0.0
},
"Not": {
"support": 5,
"precision": 1.0,
"recall": 0.6,
"f1": 0.75
},
"Pudor": {
"support": 3,
"precision": 0.5,
"recall": 1.0,
"f1": 0.6667
},
"Regium": {
"support": 7,
"precision": 0.5556,
"recall": 0.7143,
"f1": 0.625
}
},
"confusion_matrix": [
[
2,
0,
3,
0,
0,
0,
0
],
[
0,
3,
0,
0,
0,
0,
0
],
[
0,
0,
5,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
1,
4
],
[
0,
1,
1,
0,
3,
0,
0
],
[
0,
0,
0,
0,
0,
3,
0
],
[
0,
0,
0,
0,
0,
2,
5
]
]
},
"supplementary_test": {
"unique_images": 4,
"files_found": 6,
"excluded_duplicates": {
"byte_identical_to_source": 2,
"identical_preprocessed_input_to_source": 0
},
"results": {
"accuracy": 0.75,
"macro_f1": 0.6,
"classes_present": [
"Flosculus",
"Pudor",
"Regium"
],
"per_class": {
"Acervus": {
"support": 0,
"precision": 0.0,
"recall": 0.0,
"f1": 0.0
},
"Avarus": {
"support": 0,
"precision": 0.0,
"recall": 0.0,
"f1": 0.0
},
"Flosculus": {
"support": 1,
"precision": 1.0,
"recall": 1.0,
"f1": 1.0
},
"Mutus": {
"support": 0,
"precision": 0.0,
"recall": 0.0,
"f1": 0.0
},
"Not": {
"support": 0,
"precision": 0.0,
"recall": 0.0,
"f1": 0.0
},
"Pudor": {
"support": 1,
"precision": 0.0,
"recall": 0.0,
"f1": 0.0
},
"Regium": {
"support": 2,
"precision": 0.6667,
"recall": 1.0,
"f1": 0.8
}
},
"confusion_matrix": [
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
1,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
0,
1
],
[
0,
0,
0,
0,
0,
0,
2
]
]
},
"interpretation": "A very small supplementary set; excluded from model selection."
},
"onnx": {
"opset": 11,
"max_abs_error_vs_pytorch": 1.1920928955078125e-06,
"sha256": "985c6780057b8f016cae3db9be06c80752f23cd5837dfec9f4f6779e00574da8",
"bytes": 409063
},
"limitations": "The dataset contains only 163 labeled source files. The validation set has 3-7 files per class. No creator or session metadata is available for a grouped split, so similarly shaped drawings may appear in both splits. Validation does not establish real-world accuracy."
}