gpt4 book ai didi

keras - 如何处理keras中的单输出多损失?

转载 作者:行者123 更新时间:2023-12-04 13:02:18 25 4
gpt4 key购买 nike

我的模型只有一个输出。但我想将损失分成 3 个不同的部分,以便我可以跟踪每个部分的进度。有没有办法用 keras 做到这一点?

也许我可以将相同的损失分量定义为指标,但有没有更优雅的方法?

最佳答案

您可以将损失定义为 Keras 层,然后您可以手动添加所有损失和指标(如果需要)。

You can see a complete tutorial about this topic here

特尔;博士:

  • 定义计算损失的层
  • 编写您自己的 compile() 函数,在其中添加优化器、损失和指标
  • 在 model.compile(optimizer="adam", loss=...) 添加 None作为损失

  • 这是在代码中手动添加损失的方式:
    loss_layer_names = {"my_loss", ...}

    # Adding losses
    for name in loss_layer_names:
    layer = model.get_layer(name)
    loss = (tf.reduce_mean(layer.output, keepdims=True))
    model.add_loss(loss)

    # Adding metrics
    for name in loss_layer_names:
    layer = model.get_layer(name)
    loss = (tf.reduce_mean(layer.output, keepdims=True))
    model.metrics_names.append(name)
    model.metrics_tensors.append(loss)

    model.compile(optimizer="adam", loss=[None] * len(model.outputs))

    哪里 model是 Keras 模型

    关于keras - 如何处理keras中的单输出多损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53272743/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com