【发布时间】:2019-01-30 01:32:45
【问题描述】:
我正在用 Tensorflow Estimator 训练一个模型,我的数据不平衡。我想通过加权每个训练示例来纠正这一点。
在原始的 Tensorflow 中,人们可能会这样做 like this。在Estimator 中是否有一种简单的方法可以做到这一点?也许构建一个自定义input_fn?
【问题讨论】:
标签: machine-learning tensorflow deep-learning
我正在用 Tensorflow Estimator 训练一个模型,我的数据不平衡。我想通过加权每个训练示例来纠正这一点。
在原始的 Tensorflow 中,人们可能会这样做 like this。在Estimator 中是否有一种简单的方法可以做到这一点?也许构建一个自定义input_fn?
【问题讨论】:
标签: machine-learning tensorflow deep-learning
我假设您正在进行分类。如果是这样,请使用tf.estimator.DNNClassifier:
weight_column:一个字符串或
_NumericColumn创建者tf.feature_column.numeric_column定义特征列表示 权重。它用于在训练期间减轻重量或增加示例。 它将乘以示例的损失。如果是字符串, 它用作从features获取权重张量的键。如果是 一个_NumericColumn,原始张量通过键weight_column.key获取,然后 在其上应用weight_column.normalizer_fn以获得权重张量。
【讨论】:
如果您正在构建自定义估计器模型,则应将数据集的每个样本的类权重作为特征转发给您的 model_fn,并且在定义损失函数 op 时,您可以将类权重传递给 weight 参数.
示例:
tf.losses.softmax_cross_entropy(target, logits,weights=features['weight'])
【讨论】: