【问题标题】:Can we train model on only some classes of a dataset我们可以只在数据集的某些类别上训练模型吗
【发布时间】:2021-09-25 09:21:57
【问题描述】:

我想在数据集的不同类别上训练一些模型,以便每个模型在输出层中只有相关数量的节点。稍后,我想通过制作一个公共向量来结合他们的学习,例如,聚合他们的输出。并且最终/聚合模型将从这个聚合输出向量中学习。

例如,对于 Cifar 10 数据集,我有两个模型;模型 1 和模型 2。 Model-1 仅具有 1,3,5,7 类的样本,而 Model-2 具有 0,3,5,8,9 类的样本。很明显,model1 只有 4 个类的样本,所以它在输出层应该只有 4 个节点。同样,Model-2 有 5 个类的样本,所以它的输出层应该有 5 个节点。

据我了解;

cifar 10 数据集中的实际类数:[0,1,2,3,4,5,6,7,8,9]

Model-1 的类:[1,3,5,7]

Model-2 的类:[0,3,5,8,9]

我只是制作了两个具有相关节点数的模型。但是,当我尝试使用 keras.utils.np_utils.to_categorical(y,num_classes=4) 为 Model-1 应用一种热编码时,它不允许我这样做并且它给出了以下错误:

InvalidArgumentError:  logits and labels must be broadcastable: logits_size=[32,4] labels_size=[32,7]

我进一步浏览了互联网,发现这是由于标签和类大小的差异,即 Model-1 的最大值。类标签为7,因此这意味着一种热编码期望num_classes7而不是4。但是,根据要求,我必须遵循相同的设置,即只有相关数量的节点应该在模型的输出层中。

任何建议都将不胜感激。

【问题讨论】:

    标签: python keras one-hot-encoding


    【解决方案1】:

    最后。我得到了解决方案。谢谢。

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多