当前位置: 首页 > 面试题库 >

如何在Keras中使用fit_generator()加权类?[关闭]

孔弘盛
2023-03-14
问题内容

关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。

想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。

去年关闭。

改善这个问题

我正在尝试使用keras来拟合CNN模型以对图像进行分类。数据集具有来自某些类别的更多图像,因此其不平衡。

我在Keras中阅读了有关如何权衡损失以解决这一问题的其他方法,例如:https :
//datascience.stackexchange.com/questions/13490/how-to-set-class-weights-for-
imbalanced-classes-in
-keras
,这很好地解释了。但是,它总是解释为 fit
()函数,而不是 fit_generator ()一个。

确实,在fit_generator()函数中,我们没有’ class_weights参数,但是我们有’ weighted_metrics
‘,我不理解它的描述:“ weighted_metrics:在训练过程中要由sample_weight或class_weight评估和加权的指标列表测试。”

如何从“ class_weights”传递到“ weighted_metrics”?有人能举一个简单的例子吗?


问题答案:

根据文档,我们class_weightfit_generator
Keras v.2.2.2 )中:

Class_weight
:可选的字典,将类索引(整数)映射到权重(浮点)值,用于对损失函数加权(仅在训练过程中)。这可能有助于告诉模型“更多关注”来自代表性不足的类的样本。

假设您有两个类[ ],则可以传递class_weightfit_generatorwith:

model.fit_generator(gen,class_weight=[0.7,1.3])


 类似资料:
  • 问题内容: 我正在使用GPU版本的keras在经过预训练的网络上应用转移学习。我不知道如何来定义参数 , 和 。如果我更改这些参数(主要是为了加快学习速度),则不确定是否每个时期仍能看到所有数据。 : 内部训练队列的最大大小,用于“预缓存”生成器中的样本 问题: 这是否指的是在CPU上准备多少批次?有什么关系?如何最佳定义? : 并行生成批处理的线程数。批处理在CPU上并行计算,然后即时传递到GP

  • 问题内容: 在具有功能API的Keras模型中,我需要调用fit_generator来使用ImageDataGenerator训练增强图像数据。问题是我的模型有两个输出:我要预测的掩码和一个二进制值,显然我只想增加输入和掩码输出,而不是二进制值。我该如何实现? 问题答案: 下面的示例可能是不言自明的!“虚拟”模型采用1个输入(图像),并输出2个值。该模型为每个输出计算MSE。 下面的函数生成批次以

  • 我正在用人脸图像数据集训练一个卷积神经网络。该数据集有10,000个尺寸为700x700的图像。我的模型有12层。我正在使用生成器函数将图像读取到Keras fit_generator函数中,如下所示。 train_file_names==>包含训练实例文件名的Python列表 train_class_labels==>一个热编码类标记的数组([0,1,0],[0,0,1]等) train_dat

  • 问题内容: 我正在尝试从我训练的模型中保存和加载权重。 我用来保存模型的代码是。 让我知道这是不正确的方法,还是有更好的方法。 但是当我尝试使用它们加载它们时, 但我得到这个错误: 关于我可能在做错的任何建议吗?先感谢您。 问题答案: Keras提供了三种不同的保存方法。这些在上面(带有示例)以及下面的视频链接中进行了描述。 首先,收到错误的原因是因为您打错电话。 要保存和加载模型的权重,您首先需

  • 问题内容: 我正在尝试转学;为此,我想删除神经网络的最后两层并添加另外两层。这是一个示例代码,它也会输出相同的错误。 我使用删除了该图层,但是当我尝试添加其输出时出现此错误 AttributeError:“模型”对象没有属性“添加” 我知道该错误的最可能原因是不当使用。我应该使用其他什么语法? 编辑: 我试图在keras中删除/添加图层,但不允许在加载外部重物后添加它。 它显示此错误 问题答案:

  • 问题内容: 我正在使用Windows 10,Python 3.5和tensorflow 1.1.0。我有以下脚本: 我得到错误: 问题答案: 如果您写: 然后不是图层,而是图层的输出。该层是 所以看来您的意思是: 这是完整的代码段: