我正在尝试根据两组不同的训练数据训练CNN。对于训练数据集A和B,我想分别优化成本函数Cost_A和Cost_B。我想确保在训练期间,模型参数在同时优化两个损失函数的方向上改变。
任何人都知道如何在Keras实现它?
PS:我不是在找代码!只是一个暗示就足够了!
一种选择是交替训练 - 运行具有成本函数A的集合A(使用例如train_on_batch)的小批量,运行具有成本函数B的集合B的小批量。
另一种选择是具有“条件”成本函数。本质上,您可以添加一个新的变量X给你的输入(制作一个多输入模型)一个新的变量X,对于来自A的每个样本设置为1.然后你可以设置你的成本函数是Cost_A*X + Cost_B*(1-X)
,这将忽略每个项目的“错误”成本函数。然后,您可以一次训练两个数据集。