machine-learning - Keras 如何反向传播自定义损失函数?

标签 machine-learning keras

我研究了很多 Keras 自定义损失函数的示例。所有这些都可以概括为“写就行”。即,需要编写带有参数(y_true,y_pred)的函数。但通常 CNN 需要损失函数的导数来进行反向传播。例如,如果您在 Caffe 中实现自定义损失,则必须编写 2 个函数:您需要的损失本身,以及它的反向传播的导数。但在 Keras 中,你似乎不需要第二个。这个魔法是如何运作的?

最佳答案

这个魔法叫做自动微分(AD)。 Keras 构建在符号计算框架之上,即 Theano、TensorFlow 和/或 CNTK。这些框架允许您将损失定义为符号表达式,可以在运行时轻松区分损失,因为整个表示都是符号的。

相比之下,Caffe 是用 C++ 构建的,不使用任何符号表示框架,正如您提到的,它需要在代码中分析指定损失函数及其梯度。

关于machine-learning - Keras 如何反向传播自定义损失函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48104544/

相关文章:

tensorflow - MNIST 识别手写文字

machine-learning - 指数中对数似然的含义。最大化算法

python - 如何在 anaconda 上安装 tensorflow 2.4>?

python - 如何导入训练好的模型来预测单张图像?

python - 从 Keras 保存初始化的 tensorflow 图

python - 使用函数式 API 初始化后如何更改网络?

machine-learning - 神经网络-Softmax交叉熵损失减少对应准确率下降

python - 有没有办法从随机森林模型中提取树的深度?

machine-learning - 机器学习 - 哪种方法最适合根据不同重要性的特征预测离散、连续的解决方案?

python - 保存keras模型以节省空间的最佳方式