MCPcopy Create free account
hub / github.com/Sense-GVT/DeCLIP / DEFILIP

Class DEFILIP

prototype/model/defilip.py:149–428  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

147 return x
148
149class DEFILIP(CLIP):
150 def __init__(self,image_encode, text_encode, use_allgather, nn_size=2**16, nn_topk=1, \
151 return_dense=False, return_simsiam_text=False, return_simsiam_nn_text=False, return_caption=False, return_nn_bank=False, text_mask_type=None,
152 EDA=True, feature_dim=1024, forward_type='split', return_filip=False, dense_embed_dim=256, dense_mapping_image=768, dense_mapping_language=512, dense_aug=False):
153 super(DEFILIP, self).__init__(image_encode, text_encode, use_allgather)
154 # TODO change for r50 checkpoint
155 self.projector = projection_MLP(feature_dim)
156 # self.projector = projection_MLP(1024)
157 self.predictor = prediction_MLP(1024)
158 self.return_dense = return_dense
159 self.return_simsiam_nn_text = return_simsiam_nn_text
160 self.return_nn_bank = return_nn_bank
161 self.return_caption = return_caption
162 self.return_simsiam_text = return_simsiam_text
163 self.return_simsiam_nn_text = return_simsiam_nn_text
164 self.return_filip = return_filip
165
166 self.text_mask_type = text_mask_type
167 self.EDA = EDA
168 self.forward_type = forward_type
169 #import gensim
170 #from textaugment import Word2vec
171 #model = gensim.models.KeyedVectors.load_word2vec_format('/mnt/cache/liyangguang/GoogleNews-vectors-negative300.bin.gz', binary=True)
172 #self.word2vec = Word2vec(model=model)
173 from textaugment import EDA
174 self.emd = EDA()
175
176 self.dense_aug = dense_aug
177
178 if self.return_filip:
179 self.select_topk = True
180 self.logit_scale_dense = nn.Parameter(torch.ones([]))
181 nn.init.constant_(self.logit_scale_dense, np.log(1/0.07))
182 self.image_mapping = nn.Linear(dense_mapping_image, dense_embed_dim)
183 self.text_mapping = nn.Linear(dense_mapping_language, dense_embed_dim)
184
185 if self.return_dense:
186 raise NotImplementedError('These are bugs in the model, Please Check The Codes!')
187 self.projector_d = projection_MLP(2048) # dense
188 self.predictor_d = prediction_MLP(1024)
189 if self.return_simsiam_text:
190 self.projector_text = projection_MLP(feature_dim)
191 self.predictor_text = prediction_MLP(1024)
192 if self.return_simsiam_nn_text:
193 self.projector_nn_text = projection_MLP(feature_dim)
194 self.predictor_nn_text = prediction_MLP(1024)
195 if self.return_caption:
196 raise NotImplementedError('Not Available')
197 if text_mask_type is not None:
198 enc_dim = self.encode_text.text_projection.weight.shape[-1]
199 self.text_label_predictor = nn.Linear(enc_dim, self.encode_text.vocab_size)
200 if self.return_nn_bank:
201 #nn.init.normal_(self.text_projection, std=self.transformer.width ** -0.5)
202 self.nn_replacer_img = NNMemoryBankModule(size=nn_size, topk=nn_topk)
203 self.nn_replacer_text = NNMemoryBankModule(size=nn_size, topk=nn_topk)
204
205 def text_modules(self):
206 ret = super(self).text_modules()

Callers 1

defilip_vitb32Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected