(self, arch="ViT-H-14", version="laion2b_s32b_b79k", device="cuda", max_length=77,
freeze=True, layer="pooled", antialias=True, ucg_rate=0.)
| 95 | |
| 96 | class FrozenOpenCLIPImageEmbedder(nn.Module): |
| 97 | def __init__(self, arch="ViT-H-14", version="laion2b_s32b_b79k", device="cuda", max_length=77, |
| 98 | freeze=True, layer="pooled", antialias=True, ucg_rate=0.): |
| 99 | super().__init__() |
| 100 | model, _, _ = open_clip.create_model_and_transforms(arch, device=torch.device('cpu'), |
| 101 | pretrained=version, ) |
| 102 | del model.transformer |
| 103 | self.model = model |
| 104 | |
| 105 | self.device = device |
| 106 | self.max_length = max_length |
| 107 | if freeze: |
| 108 | self.freeze() |
| 109 | self.layer = layer |
| 110 | if self.layer == "penultimate": |
| 111 | raise NotImplementedError() |
| 112 | self.layer_idx = 1 |
| 113 | |
| 114 | self.antialias = antialias |
| 115 | |
| 116 | self.register_buffer('mean', torch.Tensor([0.48145466, 0.4578275, 0.40821073]), persistent=False) |
| 117 | self.register_buffer('std', torch.Tensor([0.26862954, 0.26130258, 0.27577711]), persistent=False) |
| 118 | self.ucg_rate = ucg_rate |
| 119 | |
| 120 | def preprocess(self, x): |
| 121 | # resize to 224, normalize to [0,1] and re-normalize according to clip |
nothing calls this directly
no test coverage detected