tensorflow - 使用 Keras 计算损失函数中的非均匀惩罚
问题描述
在计算 Keras(或 Tensorflow)中的损失时,是否有一种简单的方法可以使用不均匀的惩罚?我的意思是,假设你有 5000 个训练样本,它们的重要性不同,我们更愿意在某些情况下获得更准确的预测,即使代价是对其他几个样本的估计不准确。我已经有了一些代表它们重要性的样本系数。
有没有办法在 Keras 或 Tensorflow 上实现这样的模型?
解决方案
是的,有一种方法是在kerassample_weight
的拟合或功能中使用。fit_generator
这将应用每个样本的重量。因此,sample_weight 向量应该与您的训练集具有相同的长度。
这是示例代码:
history = model.fit(X_train, y_train, epochs=1000, sample_weight=sample_coefficients)
来自 keras文档:
sample_weight:训练样本的可选 Numpy 权重数组,用于加权损失函数(仅在训练期间)。您可以传递一个与输入样本长度相同的平面 (1D) Numpy 数组(权重和样本之间的 1:1 映射),或者在时间数据的情况下,您可以传递一个具有形状的二维数组(样本、序列长度),对每个样本的每个时间步应用不同的权重。在这种情况下,您应该确保在 compile() 中指定 sample_weight_mode="temporal"。
推荐阅读
- wordpress - 我需要编辑哪个 Wordpress 文件?
- nginx - 如何在 NLB 使用 kubernetes ingress-nginx 和 SSL 终止来实现部分 HTTP->HTTPS 重定向?
- javascript - 设置状态时,如何输出当前状态而不是前一个状态?(类组件)
- android - 修饰符 .weight() 未在列中自动设置且无法添加
- karma-runner - 如何包含业力报告者而不将其发布为 npm 包
- java - 是否可以在 java 中使用三元运算符执行 2 个操作
- javascript - 尝试为文本制作颜色选择器。如何将 colorPicker 函数应用于我想要的文本以及在哪里?
- database - 传感器网络计算特征 - 设计数据库
- python - 无法将数据集目录中的“标签”转换为 TensorFlow 中的 Numpy 数组(在 Python 中)
- html - 如何使用 Swift 遍历 HTML DOM