L2T-ww - Learning What and Where to Transfer

前言

協助友人快速執行程式,將程式開發流程記錄下來以供參考,訓練完成時間約10個小時。 開發環境使用一張 Nvidia 2080Ti 顯示卡,程式並無大問題,簡單處理將logs資料夾刪除。 初步流程約半個小時內可以快速上手。

資料來源

  • Source Code - L2T-ww https://github.com/alinlab/L2T-ww

  • ICML 2019 Paper - Learning What and Where to Transfer https://arxiv.org/pdf/1905.05901.pdf

環境需求

  • python>=3.6
  • pytorch>=1.0
  • torchvision
  • cuda>=9.0

資料集

將下載後的檔案根據下圖所示建立該目錄, 只針對CUB-200 datasets與Stanford Dogs datasets,其餘未測試。

  • The Caltech-UCSD Birds-200-2011 (CUB-200) https://data.deepai.org/CUB200(2011).zip

  • Run cub200.py

Original data - CUB200
cub200 dataset
Split data - CUB200
  • Stanford Dogs datasets http://vision.stanford.edu/aditya86/ImageNetDogs/ 下載對應的目錄
    • Images
    • List
  • Run dog.py Original data - Stanford Dogs
dog dataset
Split data - Stanford Dogs

訓練模型

開啟終端機,切換路徑至專案根目錄,輸入指令,開始訓練。

  • 切換至專案目錄 train cmd

  • 指令 (Windows)

    1
    2
    3
    4
    5
    6
    7
    8
    python train_l2t_ww.py --dataset dog --datasplit dog --dataroot ./data/dog --experiment ./logs/dog/

    python train_l2t_ww.py --dataset cub200 --datasplit cub200 --dataroot ./data/CUB_200_2011 --experiment ./logs/CUB_200_2011/

    python train_l2t_ww.py --dataset cifar100 --datasplit cifar100 --dataroot ./data/ --experiment logs/cifar100_0/ --source-path logs --source-model resnet32 --source-domain tinyimagenet-200 --target-model vgg9_bn --pairs 4-0,4-1,4-2,4-3,4-4,9-0,9-1,9-2,9-3,9-4,14-0,14-1,14-2,14-3,14-4 --batchSize 128

    python train_l2t_ww.py --dataset stl10 --datasplit stl10 --dataroot ./data/ --experiment logs/stl10_0/ --source-path logs --source-model resnet32 --source-domain tinyimagenet-200 --target-model vgg9_bn --pairs 4-0,4-1,4-2,4-3,4-4,9-0,9-1,9-2,9-3,9-4,14-0,14-1,14-2,14-3,14-4 --batchSize 128

  • 訓練過程紀錄 train process

  • 訓練結果 result