I have a problem which I try (not successfully) to solve … (It’s about my master’s thesis).
Anyway, I coded a fully connected feed forward neural network for supervised regression with PyTorch (4 layers, 32 neurons per layer). It is one dimensional (1 input dim., 1 output dim.), i.e. the selected hypothesis of the NN can be plotted in a x-y plane. So now imagine I plot the hypothesis in x-y coordinates, i.e. I use a created data set X and apply Function = model(X), then plot(Function). I now would like to have the information about the slope of that Function. I know, in PyTorch it is a Tensor containing data points in the size of X. Nevertheless, is there any way to get the information about the derivative/slope of the Function? I don’t want the slope w.r.t. the weights, I need the slope of x w.r.t. y!!
if you do x.requires_grad_() you can compute the derivative of y w.r.t. x using torch.autograd.grad. The derivative of x w.r.t. y is the inverse (1/x) by the inverse function theorem.
Of course, for 1d, approximation by finitite differences also works well.