Spaces:
Running
Running
import torch | |
def kde(x, std = 0.1, half = True, down = None): | |
# use a gaussian kernel to estimate density | |
if half: | |
x = x.half() # Do it in half precision TODO: remove hardcoding | |
if down is not None: | |
scores = (-torch.cdist(x,x[::down])**2/(2*std**2)).exp() | |
else: | |
scores = (-torch.cdist(x,x)**2/(2*std**2)).exp() | |
density = scores.sum(dim=-1) | |
return density |