I am new to pyTorch. I want to implement a custom loss function. The output y
of my neural network is a one-dimensional tensor (i.e, the output of an embedding(n,1) layer). The loss-function applies some computation on original data sorted based on argsort(y)
. Here is my function, but it produces RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
. Would you please help me to implement the function:
def myCustomLossFunc3(data_nd, y):
path = torch.argsort(y)
data_sorted = data_nd[path]
# some computation on data_sorted
return torch.norm(data_sorted[-1]-data_sorted[0])