【问题标题】:Weighted Training Examples in TensorflowTensorFlow 中的加权训练示例
【发布时间】:2018-02-02 17:01:52
【问题描述】:

给定一组用于训练神经网络的训练示例,我们希望在训练中对各种示例赋予或多或少的权重。我们根据示例的“价值”(例如有效性或置信度)的某些标准对每个示例应用介于 0.0 和 1.0 之间的权重。这如何在 Tensorflow 中实现,尤其是在使用 tf.nn.sparse_softmax_cross_entropy_with_logits() 时?

【问题讨论】:

    标签: machine-learning tensorflow statistics neural-network


    【解决方案1】:

    在最常见的情况下,当您调用 logits 的形状为 [batch_size, num_classes]labels 的形状为 [batch_size] 时,该函数返回一个形状为 batch_size 的张量。您可以将此张量与权重张量相乘,然后再将它们减少为单个损失值:

    weights = tf.placeholder(name="loss_weights", shape=[None], dtype=tf.float32)
    loss_per_example = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
    loss = tf.reduce_mean(weights * loss_per_example)
    

    【讨论】:

    • 当我们将权重指定为tf.train.Example 的一部分时,我们是否必须将权重指定为一个热编码列表,或者只是一个与该图像中的 bboxes 列表匹配的列表。示例:'image/object/weight': dataset_util.float_list_feature(weights)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多