gpt4 book ai didi

tensorflow - Keras - fit_generator 中的 class_weight 与 sample_weights

转载 作者:行者123 更新时间:2023-12-03 23:39:30 28 4
gpt4 key购买 nike

在 Keras(使用 TensorFlow 作为后端)中,我正在构建一个模型,该模型正在处理具有高度不平衡类(标签)的巨大数据集。为了能够运行训练过程,我创建了一个生成器,它将数据 block 提供给 fit_generator .

根据 fit_generator 的文档,生成器的输出可以是元组 (inputs, targets)或元组 (inputs, targets, sample_weights) .考虑到这一点,这里有几个问题:

  • 我的理解是class_weight考虑整个数据集的所有类的权重,而sample_weights考虑每个单独 block 的所有类的权重
    由生成器创建。那是对的吗?如果没有,有人可以详细说明这个问题吗?
  • 是否有必要同时提供 class_weightfit_generator然后是 sample_weights作为每个 block 的输出?如果是,那为什么?如果不是,那么哪个更好?
  • 如果我应该给 sample_weights对于每个 block ,如果特定 block 中缺少某些类,我如何映射权重?让我举个例子吧。在我的整个数据集中,我有 7 个可能的类(标签)。因为这些类高度不平衡,所以当我创建较小的数据 block 作为 fit_generator 的输出时,特定 block 中缺少某些类。我应该如何创建 sample_weights这些 block ?
  • 最佳答案

    My understanding is that the class_weight regards the weights of all classes for the entire dataset whereas the sample_weights regards the weights of all classes for each individual chunk created by the generator. Is that correct? If not, can someone elaborate on the matter?


    class_weight在目标函数的计算中影响每个类的相对权重。 sample_weights ,顾名思义,允许进一步控制属于同一类的样本的相对权重。

    Is it necessary to give both the class_weight to the fit_generator and then the sample_weights as an output for each chunk? If yes, then why? If not then which one is better to give?



    这取决于您的应用程序。在对高度倾斜的数据集进行训练时,类权重很有用;例如,用于检测欺诈交易的分类器。当您对批处理中的 sample 没有同等的信心时, sample 重量很有用。一个常见的例子是对具有可变不确定性的测量执行回归。

    If I should give the sample_weights for each chunk, how do I map the weights if some of the classes are missing from a specific chunk? Let me give an example. In my overall dataset, I have 7 possible classes (labels). Because these classes are highly imbalanced, when I create smaller chunks of data as an output from the fit_generator, some of the classes are missing from the specific chunk. How should I create the sample_weights for these chunks?



    这不是问题。 sample_weights是在每个样本的基础上定义的,并且独立于类。因此, documentation声明 (inputs, targets, sample_weights)应该是相同的长度。

    function _weighted_masked_objectiveengine/training.py有一个正在应用的 sample_weights 示例。

    关于tensorflow - Keras - fit_generator 中的 class_weight 与 sample_weights,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43459317/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com