in jcm/models/lpips.py [0:0]
def __call__(self, x, t):
x = self.vgg((x + 1) / 2)
t = self.vgg((t + 1) / 2)
feats_x, feats_t, diffs = {}, {}, {}
for i, f in enumerate(self.feature_names):
feats_x[i], feats_t[i] = normalize_tensor(x[f]), normalize_tensor(t[f])
diffs[i] = (feats_x[i] - feats_t[i]) ** 2
# We should maybe vectorize this better
res = [
spatial_average(self.lins[i](diffs[i]), keepdims=True)
for i in range(len(self.feature_names))
]
val = res[0]
for i in range(1, len(res)):
val += res[i]
return val