[英]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.