我希望通过使用共享层执行分割和分类来执行多任务学习,如图所示。但是,输出1将是一个分段蒙版,可与不同的损失函数(如骰子损失)一起工作,输出2将与softmax激活一起工作以提供类概率。而且,数据是互斥的,分割任务来自自然图像域,而分类则来自医学图像域。 Keras或Pytorch是否有定义的方法或示例演示这种多任务学习任务?
答案 0 :(得分:0)
我想您想在训练时在两个任务之间交替。
我还将假设您将在同一批中混合这两个任务。
您可以创建返回的自定义Dataset
class MixedDataset(Dataset):
# ...
def __getitem__(self, index):
# ... get data according to index
return img, seg, seg_flag, class, class_flag
对于医学图像,seg
将成为虚拟蒙版,seg_flag
将为零,而class
将成为目标类别,{{1 }}是1。
另一方面,对于自然图像,class_flag
将成为所需的分割蒙版,seg
将为1,而seg_flag
将成为虚拟对象,而class
将为零
现在您可以运行训练代码:
class_flag