[LAB 04 · CLIP:候选、提示与关系检验](/course/notebooks/0ba963931ddf4866b507b210d93a43bf.html) # 预处理和两条编码支路到底做了什么? · 实现代码 [独立阅读](/course/notebook-blocks/64ada4187bce4109b4173d43c262ff0c.html) 主线阅读与优先实验 真实CLIP输入/权重/分数、候选改动、四条件规则与独立关系推理 展开完整实现代码 ``` # 可读的核心路径。默认不再重算;缓存已经由完全相同路径生成。 # 将 RUN_FRESH_CLIP 改为 True 前,按说明准备依赖和固定权重。 RUN_FRESH_CLIP=False if RUN_FRESH_CLIP: import subprocess subprocess.run([sys.executable,str(RETRIEVAL_ROOT/'fetch_clip.py')],check=True) subprocess.run([sys.executable,str(RETRIEVAL_ROOT/'run_clip_retrieval.py'),'--encode'],check=True) else: saved=json.loads((RETRIEVAL_ROOT/'cache/clip-results.json').read_text()) for arm,r in saved['arms'].items(): print(arm,list(zip(r['candidate_names'],np.round(r['cosine'],4),np.round(r['softmax'],4)))) print('保存结果的来源:',p['execution'],p['generated_at_utc']) ```