in lib/model/HGPIFuMRNet.py [0:0]
def get_error(self):
'''
return the loss given the ground truth labels and prediction
'''
error = {}
if self.opt.train_full_pifu:
if not self.opt.no_intermediate_loss:
error['Err(occ)'] = 0.0
for i in range(self.preds_low.size(0)):
error['Err(occ)'] += self.criteria['occ'](self.preds_low[i], self.labels, self.gamma, self.w)
error['Err(occ)'] /= self.preds_low.size(0)
error['Err(occ:fine)'] = 0.0
for i in range(self.preds_interm.size(0)):
error['Err(occ:fine)'] += self.criteria['occ'](self.preds_interm[i], self.labels, self.gamma, self.w)
error['Err(occ:fine)'] /= self.preds_interm.size(0)
if self.nmls is not None and self.labels_nml is not None:
error['Err(nml:fine)'] = self.criteria['nml'](self.nmls, self.labels_nml)
else:
error['Err(occ:fine)'] = 0.0
for i in range(self.preds_interm.size(0)):
error['Err(occ:fine)'] += self.criteria['occ'](self.preds_interm[i], self.labels, self.gamma, self.w)
error['Err(occ:fine)'] /= self.preds_interm.size(0)
if self.nmls is not None and self.labels_nml is not None:
error['Err(nml:fine)'] = self.criteria['nml'](self.nmls, self.labels_nml)
return error