【问题标题】:Working with multiple losses and their weights in keras在 keras 中处理多个损失及其权重
【发布时间】:2019-06-01 18:16:43
【问题描述】:

使用具有多个损失的 train_on_batch 训练 GAN 模型,我可以在编译模型时使用随机的loss_weights,还是有一些特定的策略来使用这些损失权重,如 Here 所述。在我的问题中,mean_sqaured_error 是 generated_image 和 original_image 的损失函数,binary_crossentropy 是 0 和 1 类的分类损失函数。

model.compile(optimizer=optimizer, loss=['mean_squared_error', 'binary_crossentropy'], loss_weights=[100,1])

【问题讨论】:

    标签: tensorflow keras deep-learning loss-function generative-adversarial-network


    【解决方案1】:

    权重是您需要优化的超参数。请注意,优化这些超参数并不简单,因为降低权重会自动减少损失(我们通常旨在最小化损失),但不一定会创建更好的模型。如果没有标准化,MSE 的范围可以在 [0, 无穷大) 之间,或者,例如[0, 1] 如果特征在 [0,1] 之间进行归一化(并且使用了 sigmoid)。二进制交叉熵值的范围可以在 [0, infinity) 之间,这使得这个过程不像我们想象的那么简单。在不了解您的具体问题的情况下,我将首先尝试使用默认权重(每个 1)。

    【讨论】:

      猜你喜欢
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 2023-04-03
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 2019-09-23
      相关资源
      最近更新 更多