diff --git a/model/model.py b/model/model.py index be5d10f..9b816fb 100644 --- a/model/model.py +++ b/model/model.py @@ -663,9 +663,8 @@ def __init__(self, expert_dims, text_dim, use_ce, verbose, l2renorm, num_classes self.text_GU = nn.ModuleList(gated_text_embds) else: print("V. simple classifier, should update....") - total_dim = 0 - for mod in self.expert_dims.keys(): - total_dim += self.expert_dims[mod][1] * self.repeat_temporal[mod] + total_dim = np.dot([self.expert_dims[mod][1] for mod in self.expert_dims.keys()], + [self.repeat_temporal[mod] for mod in self.expert_dims.keys()]) print(f"Total dim is {total_dim}") self.classifier = nn.Linear(total_dim, self.num_classes) @@ -767,11 +766,9 @@ def forward(self, text, experts, ind, raw_captions): if self.use_ce in {"pairwise-star", "pairwise-star-specific", "pairwise-star-tensor"}: - sum_all = 0 - sum_ind = 0 - for mod0 in experts.keys(): - sum_all += (experts[mod0] * ind[mod0].float().to(dev).unsqueeze(1)) - sum_ind += ind[mod0].float().to(dev).unsqueeze(1) + sum_all = np.dot([experts[mod0] for mod0 in experts.keys()], + [ind[mod0].float().to(dev).unsqueeze(1)) for mod0 in experts.keys()]) + sum_ind = np.sum([ind[mod0].float().to(dev).unsqueeze(1) for mod0 in experts.keys()] ) avg_modality = sum_all / sum_ind for ii, l in enumerate(self.video_GU):