summaryrefslogtreecommitdiff
path: root/src/jlens_v3.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jlens_v3.py')
-rw-r--r--src/jlens_v3.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/jlens_v3.py b/src/jlens_v3.py
index 7316fe8..b5f59ed 100644
--- a/src/jlens_v3.py
+++ b/src/jlens_v3.py
@@ -169,6 +169,8 @@ def main():
ap.add_argument('--n_prompts', type=int, default=20)
ap.add_argument('--batch_size', type=int, default=16)
ap.add_argument('--layers', default='2,3,4', help='comma-separated layer indices')
+ ap.add_argument('--output_dir', default='outputs/jlens_v3',
+ help='directory for per-layer result artifacts')
ap.add_argument('--device', default='cuda')
ap.add_argument('--chunk', type=int, default=32)
args = ap.parse_args()
@@ -210,7 +212,7 @@ def main():
if layer_idx == n_layer - 1:
# Validation: J_{L-1} should be identity, so faithful vectors == W_U rows
sims = torch.nn.functional.cosine_similarity(
- faithful_vecs.float(), W_U.float(), dim=1)
+ faithful_vecs.float(), W_U.cpu().float(), dim=1)
print(f" [validation] last layer: mean cos-sim(faithful, W_U rows) = "
f"{sims.mean().item():.4f} (expect ~1.0 if J=identity)")
@@ -239,10 +241,11 @@ def main():
for tid, n in srt[-5:]:
print(f" '{esc(itos[tid])}' freq={freq[tid]:.3f}% norm={n:.4f}")
+ os.makedirs(args.output_dir, exist_ok=True)
torch.save({'faithful_vecs': faithful_vecs, 'faithful_norms': faithful_norms,
'proxy_norms': proxy_norms},
- f'outputs/jlens_v3_layer{layer_idx}.pt')
- print(f" Saved outputs/jlens_v3_layer{layer_idx}.pt")
+ os.path.join(args.output_dir, f'layer{layer_idx}.pt'))
+ print(f" Saved {os.path.join(args.output_dir, f'layer{layer_idx}.pt')}")
print("\nDONE.")