StructuralAttack populates record_level_results and attack_metrics["individual"] unconditionally, ignoring the report_individual parameter (see sacroml/attacks/structural_attack.py:480 and :681). Other attacks (LiRA, QMIA) respect the flag and only produce per-record output when it is True.
Surfaced during PR #441 review
MetaAttack currently depends on this always-on behaviour to read structural scores without forcing the flag. Fixing structural to respect the flag would require MetaAttack to set report_individual=True for the structural sub-attack too (one-line change in _run_sub_attack).
StructuralAttack populates
record_level_resultsandattack_metrics["individual"]unconditionally, ignoring thereport_individualparameter (seesacroml/attacks/structural_attack.py:480and:681). Other attacks (LiRA, QMIA) respect the flag and only produce per-record output when it is True.Surfaced during PR #441 review
MetaAttack currently depends on this always-on behaviour to read structural scores without forcing the flag. Fixing structural to respect the flag would require MetaAttack to set
report_individual=Truefor the structural sub-attack too (one-line change in_run_sub_attack).