Improving Zero-Shot Generalization for CLIP with Synthesized Prompts