[英]Alternatively train multi task learning model in pytorch - weight updating
[英]Train a model with a task and test it with another task?
我的数据框由 3000 个样本、n 个特征和两个目标列组成,如下所示:
mydata:
id, f1, f2, ..., fn, target1, target2
01, 23, 32, ..., 44, 0 , 1
02, 10, 52, ..., 11, 1 , 2
03, 66, 15, ..., 65, 1 , 0
...
2000, 76, 32, ..., 17, 0 , 1
在这里,我有一个多任务学习问题(我在这个领域很新),我想用target1
训练一个模型/网络并用target2
测试它。
如果我们将target1
和target2
视为任务,它们可能是相关的任务,但我们不知道有多少。 所以,我想看看我们可以使用多少由task1( target1
)训练的model来预测task2( target2
)。
看来,这是不可能的,因为target1
是二进制 class(0 和 1),但target2
有两个以上的值(0,1 和 2)。 有没有办法处理这个问题?
这不是多任务学习,而是迁移学习。 如果您已经训练 model 来预测target1
和target2
,那将是多任务学习。
是的,有办法处理这个问题。 model 的最后一层只是从上一层计算最终 label 的分类器头。 您可以将前一层的 output 视为数据点的嵌入,并使用此表示来训练/微调另一个 model。 但是,您必须插入另一个头,因为您现在有三个类。
所以在伪代码中,你需要类似的东西
model = remove_last_layer(model)
model.add(<your new classification head outputting 3 classes>)
model.train()
然后,您可以将此方法与基线进行比较,在基线上您从头开始训练target2
以分析这两个任务之间的迁移学习。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.