這是一個關於kaggle競賽的作品呈現,透過以下流程能成功復現,程式碼解釋以及相關實驗可以詳見109550155_HW5.pdf
。
簡單來說是使用Swin Transformer來分類,而針對第二個與第三個任務,因為資料量較少,因此運用transfer learning,即繼承前一個任務訓練完的權重來開始訓練。
使模型能夠正確分辨以下三種任務:
1.只有一個數字:
2.有兩個符號:
3.有四個符號:
我採用的python version為3.9.7
。
首先下載109550155_Final_train.py
、109550155_Final_test.py
、requirements.txt
,接著用以下指令以符合執行環境。
pip install -r requirements.txt
接著到該kaggle競賽去下載dataset以及sample_submission.csv
對於不同任務需訓練不同的模型,109550155_HW5_train_task{1,2,3}.py
進入109550155_HW5_train_task{1,2,3}.py
修改路徑至指定位置並執行
python 109550155_HW5_train_task{1,2,3}.py
可以得到save_swin{1,2,3}.pth
進入109550155_HW5_inference.py
修改以下路徑至指定位置並執行
python 109550155_HW5_inference.py
可以得到109550155.csv
。
我在validation set上測試時,task1可到100%,task2約為99.7%,而task3落在99%
public scoreboard上是15/108
而在private scoreboard上的成績為21/108: