tensorflow - 需要使用 if 语句的自定义损失函数
问题描述
我正在尝试训练输出 3 个值的 DNN,(x,y,z)
其中x
和y
是我正在寻找的对象的坐标,并且z
是对象存在的概率
我需要自定义损失函数:
如果z_true<0.5
我不关心x
和y
值,那么错误应该等于(0, 0, sqr(z_true - z_pred))
否则错误应该像(sqr(x_true - x_pred), sqr(y_true - y_pred), sqr(z_true - z_pred))
我正在努力将张量和 if 语句混合在一起。
解决方案
也许这个自定义损失函数的例子会让你启动并运行。它展示了如何将张量与 if 语句混合。
def conditional_loss_function(l):
def loss(y_true, y_pred):
if l == 0:
return loss_funtion1(y_true, y_pred)
else:
return loss_funtion2(y_true, y_pred)
return loss
model.compile(loss=conditional_loss_function(l), optimizer=...)
推荐阅读
- node.js - 为什么在 IBM Cloud 上托管的 Cloud Foundry 应用程序中删除了 fs(文件系统)?
- sql - Oracle SELF JOIN 提出建议
- python - 在python中为groupby()选择单个值
- css - iOS 13 及更低版本 CSS 动画闪烁
- android - 如何使 Webview 在 Kiosk 自助服务中工作
- swift - SwiftUI我怎么能在圆圈旁边有2个文字
- typescript - 精炼联合型
- java - jacoco 代码覆盖率报告除了应用程序代码之外还包括 maven 依赖项
- javascript - HTML更改单选按钮背景
- android - 我应该怎么做才能从 Firebase 隐藏弹出菜单?