gpt4 book ai didi

tensorflow - 如何删除使用 add_loss() 添加的损失

转载 作者:行者123 更新时间:2023-12-02 02:02:31 24 4
gpt4 key购买 nike

如果我制作一个模型,然后使用add_loss:

model.add_loss(myLoss1(...))

后来想在同一模型上使用不同的损失,例如,我该如何删除 myLoss1 并将其替换为 myLoss2

我尝试了model.losses.clear(),但这似乎没有效果。我知道我可以将权重保存到磁盘,用所需的损失重新制作模型并重新加载权重,但这似乎是一种黑客行为。

最佳答案

您可以使用现有模型的配置创建一个新模型,然后再次调用 add_loss() 以设置新的损失。恢复模型权重也是如此。

weights = model.get_weights()

# Instantiate model again to remove old loss
model = model.from_config(model.get_config())
model.set_weights(weights)

# Set new loss
model.add_loss(myLoss2(...))

(可选)您可能希望在开始使用新损失训练模型之前重置全局状态,但这取决于您的用例。

# For Tensorflow's Keras
tf.keras.backend.clear_session()

# For Standalone Keras
keras.backend.clear_session()

关于tensorflow - 如何删除使用 add_loss() 添加的损失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68821605/

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