Я новичок в tenorflow и пытаюсь получить вторую производную функции, однако, если первая производная становится постоянной, вторая производная становится None вместо 0.
Насколько я понимаю, это потому, чтоне является вычислительным графом, связывающим константу от первой производной с какой-либо из переменных, поэтому он становится «Нет». Но я не понимаю, как это исправить. Я также не понимаю, почему производная в таком случае не всегда равна 0, математически имеет смысл установить ее равной 0, а не None.
Вот код, который я запускаю для решения проблемы:
x_val = np.linspace(0,1,n)
x = K.variable(x_val,dtype='float64',name='x')
y_val = np.linspace(0,1,n)
y = K.variable(y_val,dtype='float64',name='y')
z = x**2 + y + 1
g = K.gradients(z,[x,y])
g2 = K.gradients(g,[x,y])
print(K.eval(g2[0])) #Works
print(K.eval(g2[1])) #Gradient is None, can't be evaluated