import sys,json,torch
sys.path.insert(0,'tools')
from calibrate_siglip_fixture import Siglip,project_f143
from pathlib import Path
torch.set_grad_enabled(False);torch.set_num_threads(8);torch.backends.cuda.matmul.allow_tf32=False;torch.backends.cudnn.allow_tf32=False
root=Path('artifacts/pretrained-siglip-20260912');m=Siglip(root/'fixture','cuda',64);m.scales=json.loads((root/'calibration.json').read_text())['scales'];cases=m.manifest['cases'];r={}
m.quantize=True
print('ACTIVATION ONLY',flush=True);r['activation_only']=m.evaluate(cases)
for name,s in m.scales.items():m.parameters[name+'.weight'].copy_(project_f143(m.parameters[name+'.weight'],s['weight']))
m.quantize=False
print('WEIGHT ONLY',flush=True);r['weight_only']=m.evaluate(cases)
(root/'ablations.json').write_text(json.dumps(r,indent=2)+'\n')
