# Grad is None for leaf tensor

I am trying to compare the empirical distributions of elements of two tensors by computing a coarse histogram of the two tensors (`torch.histc` is not differentiable). I want to compute the gradients of a particular loss function measuring the dissimilarity between the two distributions w.r.t the input tensor which is a leaf variable. However the returned grad is always None. Below is a minimal example of what I’m trying to do. Any suggestions?

``````import torch

def hist_loss(X, Y, bins: int=10):

X = X.view(-1)
Y = Y.view(-1)
xmin, xmax = X.min(), X.max()
ymin, ymax = Y.min(), Y.max()
xstep = (xmax - xmin)/bins
ystep = (ymax - ymin)/bins

n = len(X)
for i in range(bins):
# x is the empirical distribution of the X
# y is the empirical distribution of the Y
x = torch.sum(torch.where(((X>xmin+i*xstep) & (X<xmin+(i+1)*xstep)), one, zero))
y = torch.sum(torch.where(((Y>ymin+i*ystep) & (Y<ymin+(i+1)*ystep)), one, zero))
hist_loss = hist_loss + ((x-y)/n)**2

hist_loss    = torch.sqrt(hist_loss)

return hist_loss