Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么';Keras是否需要自定义损失函数的梯度?_Python_Python 3.x_Tensorflow_Deep Learning_Keras - Fatal编程技术网

Python 为什么';Keras是否需要自定义损失函数的梯度?

Python 为什么';Keras是否需要自定义损失函数的梯度?,python,python-3.x,tensorflow,deep-learning,keras,Python,Python 3.x,Tensorflow,Deep Learning,Keras,据我所知,为了通过梯度下降更新模型参数,算法需要在某个点计算误差函数E对输出y:dE/dy的导数。然而,我已经看到,如果你想在Keras中使用自定义损失函数,你只需要定义E,而不需要定义它的导数。我错过了什么 每个损失函数都有不同的导数,例如: 如果损失函数为均方误差:dE/dy=2(y_真-y) 如果损失函数是交叉熵:dE/dy=y\u真/y 再说一遍,模型怎么可能不问我导数是什么?该模型如何仅从E值计算损失函数相对于参数的梯度 感谢据我所知,只要在误差函数中使用的每个运算符都已经有预定义的梯

据我所知,为了通过梯度下降更新模型参数,算法需要在某个点计算误差函数E对输出y:dE/dy的导数。然而,我已经看到,如果你想在Keras中使用自定义损失函数,你只需要定义E,而不需要定义它的导数。我错过了什么

每个损失函数都有不同的导数,例如:

如果损失函数为均方误差:dE/dy=2(y_真-y)

如果损失函数是交叉熵:dE/dy=y\u真/y

再说一遍,模型怎么可能不问我导数是什么?该模型如何仅从E值计算损失函数相对于参数的梯度


感谢

据我所知,只要在误差函数中使用的每个运算符都已经有预定义的梯度。底层框架将设法计算出你的损失函数的梯度。

是的。@Yu-Yang…你找到了答案。谢谢