【发布时间】: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_classes为7而不是4。但是,根据要求,我必须遵循相同的设置,即只有相关数量的节点应该在模型的输出层中。
任何建议都将不胜感激。
【问题讨论】:
标签: python keras one-hot-encoding