本项目实现了一个稳健的自动化管道,用于在完整的 CIFAR-10 测试集(10,000张图片)上评估OpenAI的 CLIP (ViT-B/32) 模型。采用 AI原生工作流(Trae IDE) 开发,实现了高精度的零样本准确率 88.80%。
88.80% (零样本)openai/clip-vit-base-patch32 (使用Safetensors)
分析: 模型显示出强烈的对角线主导性。在 'Deer' 和 'Horse' 之间观察到统计偏差(15.4%重叠),可能是由于CIFAR-10的超低32x32分辨率下相似的骨骼轮廓。Automobile 和 Horse 类别达到了最高的精确度(97.6%)。
CIFAR10Dataset 以处理原始二进制pickle数据,高效地将1D字节数组转换为3D RGB张量。torch.utils.data.DataLoader 与 tqdm,在不溢出VRAM的情况下管理10,000个样本。"a photo of a {label}" 来优化文本与图像嵌入之间的语义对齐。scikit-learn 计算混淆矩阵,提供对语义分类错误的细粒度观察。本项目记录了开发过程中遇到的几个生产级挑战及其解决方案:
.bin (Pickle) 文件。use_safetensors=True 强制使用 Safetensors 格式,实现零拷贝、安全的模型加载。HF_HUB_DISABLE_SYMLINKS=1 并建立手动缓存清理协议,确保跨平台兼容性。CLIPProcessor 管道以正确处理原始 uint8 输入,成功将准确率恢复至88.8%。HF_ENDPOINT 镜像和 local_files_only=True,实现高速、离线可部署。pip install torch transformers pillow numpy tqdm scikit-learn seaborn matplotlib
下载CIFAR-10 Python版本,并将 cifar-10-batches-py 文件夹放在项目根目录下。
# 在Windows上,直接运行预配置的批处理文件:
.\run.bat
# 或手动通过Python运行:
python full_cifar_clip_eval.py
clip_eval_project/
├── full_cifar_clip_eval.py # 核心评估脚本
├── run.bat # 一键运行入口
├── confusion_matrix.png # 混淆矩阵结果
├── cifar-10-batches-py/ # CIFAR-10原始数据
│ └── test_batch # 测试集数据
└── README.md # 项目文档
本项目采用MIT许可证。详情请参阅 LICENSE 文件。