INNER CODE UNIT · Python
log_sum_exp
nv-tlabs/ATISS · scene_synthesis/losses/__init__.py:28
def log_sum_exp(x):
"""Numerically stable log_sum_exp implementation that prevents
overflow.
"""
# TF ordering
axis = len(x.size()) - 1
m, _ = torch.max(x, dim=axis)
m2, _ = torch.max(x, dim=axis, keepdim=True)
return m + torch.log(torch.sum(torch.exp(x - m2), dim=axis))
def dmll(pred, target, log_scale_min=-7.0, num_classes=256):
"""Discretized mixture of logistic distributions loss
Note that it is assumed that input is scaled to [-1, 1].
Code adapted
from https://github.com/idiap/linear-transformer-experiments/blob/0a540938ec95e1ec5b159ceabe0463d748ba626c/image-generation/utils.py#L31