Keras 用自己的损失函数

开始找了很多怎么用自己写的损失函数训练的,我自己老是跑不通,后面发现这样可以。

我在这里某个片段发现的

def dice_coef(y_true, y_pred):
    smooth = 1e-5
    y_true_f = K.flatten(y_true)   # 将 y_true 拉伸为一维.
    y_pred_f = K.flatten(y_pred)
    intersection = K.sum(y_true_f * y_pred_f)
    return (2. * intersection + smooth) / (K.sum(y_true_f * y_true_f) + K.sum(y_pred_f * y_pred_f) + smooth)

def dice_coef_loss(y_true, y_pred):
    return 1. - dice_coef(y_true, y_pred)
model.compile(optimizer=Adam(lr=1e-4), loss=dice_coef_loss, metrics=dice_coef)

其他的没区别,主要是这个dice_coef_loss函数在这里后面不跟括号。(什么函数都行,这个损失函数是我网上找的)

这里我以前也试过,你们可以试试,不知道能不能跑通


前面的我今天试了,可以解决导入带自己的损失函数的模型报错的问题。

关于用自己的损失函数,我之前遇到过一篇博客描述,导入模型的时候可以选择一个参数,选择False之后就是不用之前模型的损失函数,后面可以自己再设置自己的损失函数。(用这个可以先选一个keras自带的损失函数,随便训练下,再保存,再按前面的来,达到用自己损失函数的目的)具体博客找不到了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值