gpt4 book ai didi

python - 输出Keras中add_loss添加的多重loss

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:08 25 4
gpt4 key购买 nike

我研究了 custom loss layer demonstrated by a Variational Autoencoder (VAE) 的 Keras 示例.他们在示例中只有一个损失层,而 VAE 的目标由两个不同的部分组成:重建和 KL-Divergence。但是,我想绘制/可视化这两个部分在训练过程中如何演变,并将单个自定义损失拆分为两个损失层:

Keras 示例模型:

enter image description here

我的模型:

enter image description here

不幸的是,在我的多重损失示例中,Keras 只输出一个损失值,如 my Jupyter Notebook example 中所示。我已经实现了这两种方法。有人知道如何获取 add_loss 添加的每次损失值吗?此外,Keras 如何计算单个损失值,给定多个 add_loss 调用(Mean/Sum/...?)?

最佳答案

我使用的是 Keras 2.2.4-tf 版本,上面的解决方案对我不起作用。这是我找到的解决方案(继续 dumkarexample):

reconstruction_loss = mse(K.flatten(inputs), K.flatten(outputs))
kl_loss = beta*K.mean(- 0.5 * 1/latent_dim * K.sum(1 + z_log_var - K.square(z_mean) - K.exp(z_log_var), axis=-1))

model.add_loss(reconstruction_loss)
model.add_loss(kl_loss)

model.add_metric(kl_loss, name='kl_loss', aggregation='mean')
model.add_metric(reconstruction_loss, name='mse_loss', aggregation='mean')

model.compile(optimizer='adam')

希望对你有所帮助。

关于python - 输出Keras中add_loss添加的多重loss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54069363/

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