Python 对特定标签使用零损失错误

Python 对特定标签使用零损失错误,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我正在训练一个有16个标签作为输出的数据集。当完成训练时,我想训练另一个数据集,具有第一个数据集的权重,它只有标签14/16的子集。一位朋友告诉我,我必须对那些丢失的标签设置零丢失错误 我使用tensorflow和keras作为高级API。如何做到这一点有什么提示吗?在keras中,每个模型都有一个层属性,您可以在其中重用层来重建模型。重用这些层将导致权重共享 您的问题有两种解决方案: 在第二个模型中,构建一个新的输出层,其中包含适量的输出神经元,这些神经元没有权重共享。(不完全是您想要的,但易

我正在训练一个有16个标签作为输出的数据集。当完成训练时,我想训练另一个数据集,具有第一个数据集的权重,它只有标签14/16的子集。一位朋友告诉我,我必须对那些丢失的标签设置零丢失错误


我使用tensorflow和keras作为高级API。如何做到这一点有什么提示吗?

在keras中,每个模型都有一个层属性,您可以在其中重用层来重建模型。重用这些层将导致权重共享

您的问题有两种解决方案:

  • 在第二个模型中,构建一个新的输出层,其中包含适量的输出神经元,这些神经元没有权重共享。(不完全是您想要的,但易于实施) 此外,根据您的用例,您可能还需要添加上一层

  • 构建一个自定义损失函数。这在很大程度上取决于您目前使用的损失函数。但诀窍是对预测进行切片,例如y_pred[:,:-2](第一个维度是批量大小)

  • 我个人不推荐第二种方法。如果使用softmax之类的激活函数,则与未使用的输出神经元相对应的权重可能仍会更新

    此外,还可以通过某种方式获得最后一层的权重,对其进行切片,并使用正确的输出重建一个新层。但这可能会变得非常难看