我想在数据集的不同类别上训练一些模型,以便每个模型在输出层中只有相关数量的节点。稍后,我想通过制作一个共同的向量来结合他们的学习,比如说,聚合他们的输出。并且最终/聚集模型将从该聚集输出向量中学习。
例如,对于Cifar 10数据集,我有两个模型;模型1和模型2。模型-1只有类1,3,5,7的样本,模型-2有比如说0,3,5,8,9的样本。在这里,很明显,model1只有4个类的样本,所以它在输出层应该只有4个节点。类似地,Model-2有5个类的样本,因此它在输出层中应该有5个节点。
根据我的理解;
CIFAR10数据集中的实际类数:[0,1,2,3,4,5,6,7,8,9]
模型1的类:[1,3,5,7]
模型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具有max。类标签为7,因此这意味着一个热编码需要num_classes作为7,而不是4。但是,根据要求,我必须遵循相同的设置,即只有相关数量的节点应该在模型的输出层。
任何建议都将不胜感激。
发布于 2021-08-07 00:43:01
终于来了。我找到解决方案了。谢谢。
https://stackoverflow.com/questions/68411237
复制相似问题