【问题标题】:What is keras loss class vs function?什么是 keras 损失类与函数?
【发布时间】:2021-11-25 21:20:31
【问题描述】:

here 的 Keras 损失页面中,我看到的两个主要区别是损失类别与损失函数?谁能解释为什么给这两个 API 带来同样的损失?它只是用于类初始化还是任何其他目的?另外,如果有人能解释一下在哪些情况下我们应该使用哪一个,那就太好了。

提前致谢。

【问题讨论】:

    标签: python keras deep-learning neural-network


    【解决方案1】:

    可以通过多种方式构建和训练深度学习模型。
    构建模型最简单的方法是使用 Keras 函数式 API 或顺序 API 构建模型,使用 compile 方法指定优化器、损失、指标等,并使用 fit 方法训练模型。
    如果您选择以这种方式构建模型,则 compile 方法接受 loss class
    注意:您也可以使用 loss 函数
    计算损失的实际逻辑存在于类的特殊 call 方法中,该方法在 fit 方法内部使用。

    但是,在某些情况下(主要是在研究中),必须以某种方式从头开始编写训练循环,在这种情况下,您可以使用损失函数来计算损失。
    注意:您也可以使用损失类

    损失类为您提供了一些额外的功能,例如指定 logit 值、缩减技术等。因此,如果您的代码需要使用这些功能,请使用损失类来计算损失。 如果您不需要任何此类功能,您可以简单地使用损失函数。
    注意:在后台,这两个函数调用相同的 TensorFlow 图。

    【讨论】:

    • 那么,如果我想使用你提到的最简单的第一种方法,我不能使用函数方式?
    • 不,compile 方法接受任何东西,即函数,一个类对象,只要它接受两个参数 y_true 和 y_pred。所以如果你提供一个函数,那么它应该有两个参数,如果你提供一个类对象,它的调用方法应该有两个参数。函数或类不一定是内置的。您也可以创建自己的自定义损失函数/类。
    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 2018-01-13
    • 2017-12-01
    • 2020-05-20
    • 2018-10-10
    • 2017-06-18
    • 2019-08-19
    • 2019-10-12
    相关资源
    最近更新 更多