Views
No views yet
visual_grind_grading approach of the
grind repo. Gitignored there; hydrate a
fresh clone with ./pull_checkpoints.sh.outputs/rnc_grader/rnc_sandpaper_grader.pt — the RNC sandpaper Ra grader.
torch.load gives a dict: Enc encoder state_dict (3-conv CNN, dim 32) +
per-grit anchors + grit_classes + Ra_by_grit. Inference:1import torch, torch.nn.functional as F, numpy as np
2c = torch.load("rnc_sandpaper_grader.pt", weights_only=False)
3# rebuild Enc (see scripts/shared_grading.py: class Enc), load c["state_dict"]
4def illum_norm(x): m=x.mean((2,3),keepdim=True); s=x.std((2,3),keepdim=True)+1e-4; return (x-m)/s
5z = F.normalize(net(illum_norm(x)), dim=1).cpu().numpy() # x: (N,3,64,64) [0,1]
6w = np.exp(z @ c["anchors"].T / c["tau"]); w /= w.sum(1, keepdims=True)
7grade = w @ c["grit_classes"].astype("float32") # soft ordinal, 0..6outputs/roi_cnn/roi_cnn.pt — TinyNet ROI CNN weights (grinding ROI, state_dict).cache/*.npz — p27–p38 embedding caches (multisession / SupCon / RNC
experiments) for reproducing analyses without recompute.