【问题标题】:How does Keras back propagate custom loss function?Keras 如何反向传播自定义损失函数?
【发布时间】:2018-06-14 17:33:02
【问题描述】:

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

【问题讨论】:

    标签: machine-learning keras


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-27
      • 2019-11-14
      • 1970-01-01
      • 2020-12-19
      • 2017-12-18
      • 2020-03-27
      • 1970-01-01
      • 2018-10-28
      相关资源
      最近更新 更多