ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

tf2 自定義loss加載報錯

2022-04-06 16:33:08  阅读:109  来源: 互联网

标签:loss pred 加載 theta bes model true 報錯


問題描述

ValueError: Unknown loss function: bes_loss

問題場景

  • 訓練
margin = 0.6
theta = lambda t : (K.sign(t) + 1.) / 2
def bes_loss(y_true, y_pred):
    return - (1 - theta(y_true - margin) * theta(y_pred - margin)
            - theta(1 - margin - y_true) * theta(1 - margin - y_pred)
         ) * (y_true * K.log(y_pred + 1e-8) + (1 - y_true) * K.log(1 - y_pred + 1e-8))
···
model.compile(tf.optimizers.Adam(), loss=bes_loss,metrics=['accuracy'])
  • 測試
model = load_model(config.model_path, custom_objects={'bes_loss':bes_loss})

這樣的加載方式就會出現報錯,如問題描述

問題解決

model = load_model(config.model_path, custom_objects={'bes_loss':bes_loss}, compile = False)
model.compile(tf.optimizers.Adam(), loss=bes_loss, metrics=['accuracy'])

通過compile=False忽略加載錯誤報錯,然後再通過model.compile()加載模型的配置

标签:loss,pred,加載,theta,bes,model,true,報錯
来源: https://www.cnblogs.com/monkeyT/p/16107119.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有