Hi,

I am trying to calculate diagonal elements of a hessian matrix. I used the below code:

g—>> 1D tensor of gradients.

diag=[]

for i in range(len(g)):

cnn.zero_grad()

g[i].backward(retain_graph=True, create_graph=False, inputs=p)

ele=p[i].grad

diag.append(ele)

But it is taking long time.

Any suggestions how to calculate diagonal elements of a hessian in an efficient way.

Thanks in advance