在本项目的在 "models" 目录中,包含了对 CLIP 模型和其自定义包装器进行了详细定义和配置的代码文件。其中,CLIPWrapper 类是对 CLIP 模型的 Lightning 包装器,用于训练和验证 CLIP 模型。而 CustomCLIPWrapper 类则是对 CLIPWrapper 的定制,引入了自我蒸馏和其他自定义功能以增强模型性能。此外,还包括了用于配置不同模型参数的 YAML 文件,如 RN.yaml 和 ViT.yaml。这些文件共同构成了一个完整的模型训练和配置环境,用于实现对 CLIP 模型的训练和评估。
1.1 实现CLIP模型
文件model.py定义了一个 CLIP(Contrastive Language-Image Pre-training)模型的实现,包含了视觉和文本处理模块。其中视觉部分使用了改进的 ResNet 或视觉Transformer,文本部分使用了自定义的 Transformer。文件model.py实现了多个类,如 Bot