def forward(self, in0, in1, retPerLayer=False): if self.pnet_type == 'vggface': in0 = (in0 + 1) * 255. / 2 in0_sc = in0 - self.shift.expand_as(in0) in1 = (in1 + 1) * 255. / 2 in1_sc = in1 - self.shift.expand_as(in1) else: in0_sc = (in0 - self.shift.expand_as(in0)) / self.scale.expand_as(in0) in1_sc = (in1 - self.shift.expand_as(in0)) / self.scale.expand_as(in0) outs0 = self.net.forward(in0_sc) outs1 = self.net.forward(in1_sc) if (retPerLayer): all_scores = [] st = 3 en = 4 for i in range(st, en + 1): cur_score = (1. - util.cos_sim(outs0[i], outs1[i])) if (i == st): val = 1. * cur_score else: val = val + cur_score if (retPerLayer): all_scores += [cur_score] if (retPerLayer): return (val, all_scores) else: return val
def forward(self, in0, in1, retPerLayer=False): in0_sc = (in0 - self.shift.expand_as(in0)) / self.scale.expand_as(in0) in1_sc = (in1 - self.shift.expand_as(in0)) / self.scale.expand_as(in0) if self.colorspace == 'Gray': in0_sc = util.tensor2tensorGrayscaleLazy(in0_sc) in1_sc = util.tensor2tensorGrayscaleLazy(in1_sc) outs0 = self.net.forward(in0_sc) outs1 = self.net.forward(in1_sc) if (retPerLayer): all_scores = [] for (kk, out0) in enumerate(outs0): cur_score = (1. - util.cos_sim(outs0[kk], outs1[kk])) if (kk == 0): val = 1. * cur_score else: # val = val + self.lambda_feat_layers[kk]*cur_score val = val + cur_score if (retPerLayer): all_scores += [cur_score] if (retPerLayer): return (val, all_scores) else: return val
def forward_layers(self, in0, in1, st, en): in0_sc = (in0 - self.shift.expand_as(in0)) / self.scale.expand_as(in0) in1_sc = (in1 - self.shift.expand_as(in0)) / self.scale.expand_as(in0) outs0 = self.net.forward(in0_sc) outs1 = self.net.forward(in1_sc) for i in range(st, en + 1): cur_score = (1. - util.cos_sim(outs0[i], outs1[i])) if (i == st): val = 1. * cur_score else: val = val + cur_score return val
def forward(self, in0, in1, retPerLayer=False): in0_sc = (in0 - self.shift.expand_as(in0))/self.scale.expand_as(in0) in1_sc = (in1 - self.shift.expand_as(in0))/self.scale.expand_as(in0) outs0 = self.net.forward(in0_sc) outs1 = self.net.forward(in1_sc) if(retPerLayer): all_scores = [] for (kk,out0) in enumerate(outs0): cur_score = (1.-util.cos_sim(outs0[kk],outs1[kk])) if(kk==0): val = 1.*cur_score else: # val = val + self.lambda_feat_layers[kk]*cur_score val = val + cur_score if(retPerLayer): all_scores+=[cur_score] if(retPerLayer): return (val, all_scores) else: return val