【问题标题】:How to define a custom loss function in Flux.jl?如何在 Flux.jl 中定义自定义损失函数?
【发布时间】:2021-07-31 12:43:05
【问题描述】:

查看 Flux.jl 文档,我看到大量内置损失函数:https://fluxml.ai/Flux.jl/stable/models/losses/。我的问题是,如果我想要更深奥的东西,如何在 Flux 中定义和使用自己的损失函数?

【问题讨论】:

  • 查看sources——它们实际上只是常规函数。
  • 那么唯一的要求是它们返回一个数字(浮点)值?
  • 我想 AD 对任何事情都满意(c.f. here)。我的理解是,提供的损失只是常用功能的稳定实现的方便集合。但是,我从来没有使用过 Flux(这就是我不回答的原因)。

标签: julia flux.jl


【解决方案1】:

您可以使用任何返回单个浮点值作为损失的可微函数,如上面的评论中所述,准备好的函数只是为了您的方便。 你可以传递任何东西,例如

using Flux
yourcustomloss(ŷ, y) = sum(.- sum(y .* logsoftmax(ŷ), dims = 1))

并计算它的梯度或将其传递给train!函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-13
    • 2020-12-19
    • 2017-04-04
    • 2017-12-18
    • 2020-03-27
    • 2020-11-16
    • 2019-05-27
    • 2020-02-02
    相关资源
    最近更新 更多