Test Time Train Landscape Image using [Flickr Segmenter & Flickr SPADE] - (2) (2021-12-05)

sjinu·2021년 12월 5일
0

Generative Model

목록 보기
27/30

시작 전 opt.txt, opt.pkl, iter.text 원본으로 되돌리고 시작하기.

$ python train.py --name Flickr --dataset_mode custom --label_dir gm_TTTT/val_label2 --image_dir gm_TTTT/val_img2 --continue_train --load_from_opt_file --gpu_ids=5 --niter 300 --save_epoch_freq 150 --batchSize 1 --lr 0.01 --preprocess_mode resize_and_crop --which_epoch 50 --print_freq 10

Sample 003.jpg

Original Image

Base Model

Adaptation(100~300) : lr=0.01

Inference

Base(Not Adaptation)

%python test.py --name Flickr --dataset_mode custom --load_from_opt_file --gpu_ids -1 --which_epoch 50 --image_dir gm_TTTT/val_img2 --label_dir gm_TTTT/val_label2

150 epoch

%python test.py --name Flickr --dataset_mode custom --load_from_opt_file --gpu_ids -1 --which_epoch 150 --image_dir gm_TTTT/val_img2 --label_dir gm_TTTT/val_label2

x4

300 epoch

%python test.py --name Flickr --dataset_mode custom --load_from_opt_file --gpu_ids -1 --which_epoch 300 --image_dir gm_TTTT/val_img2 --label_dir gm_TTTT/val_label2


동일 데이터, 학습률 변경

0.01 -> 0.0005

$ python train.py --name Flickr --dataset_mode custom --label_dir gm_TTTT/val_label2 --image_dir gm_TTTT/val_img2 --continue_train --load_from_opt_file --gpu_ids=5 --niter 300 --save_epoch_freq 150 --batchSize 1 --lr 0.0005  --preprocess_mode resize_and_crop --which_epoch 50 --print_freq 10

lr=0.01

(epoch: 100, iters: 1, time: 0.030) GAN: 2.673 GAN_Feat: 14.797 VGG: 6.698 D_Fake: 0.459 D_real: 2.716
(epoch: 150, iters: 1, time: 0.036) GAN: 1.660 GAN_Feat: 7.997 VGG: 4.844 D_Fake: 0.512 D_real: 2.213
(epoch: 200, iters: 1, time: 0.026) GAN: 1.728 GAN_Feat: 6.658 VGG: 4.056 D_Fake: 0.333 D_real: 2.440
(epoch: 250, iters: 1, time: 0.022) GAN: 0.149 GAN_Feat: 6.233 VGG: 4.063 D_Fake: 1.286 D_real: 1.318
epoch: 300, iters: 1, time: 0.038) GAN: 0.040 GAN_Feat: 5.947 VGG: 3.623 D_Fake: 1.340 D_real: 0.976

lr=0.0005

(epoch: 100, iters: 1, time: 0.024) GAN: 0.504 GAN_Feat: 12.697 VGG: 5.988 D_Fake: 0.882 D_real: 0.888
(epoch: 150, iters: 1, time: 0.024) GAN: 0.116 GAN_Feat: 8.819 VGG: 4.449 D_Fake: 1.026 D_real: 0.940
(epoch: 200, iters: 1, time: 0.028) GAN: 0.107 GAN_Feat: 7.381 VGG: 3.885 D_Fake: 0.966 D_real: 1.010
(epoch: 250, iters: 1, time: 0.025) GAN: 0.120 GAN_Feat: 7.016 VGG: 3.732 D_Fake: 0.893 D_real: 0.965
(epoch: 300, iters: 1, time: 0.028) GAN: 0.088 GAN_Feat: 5.836 VGG: 3.114 D_Fake: 0.982 D_real: 0.921

일반적으로 pre-train model의 base point에서 크게 벗어나지 않고, single image에 대한 적당한 local optima를 찾기만 하면 된다. 그 정도만 해도 reconstruction quality는 충분할 듯.
더군다나 parameter의 변화가 별로 없을 때, lr=0.01의 Inference와 아래의 lr=0.0005 Inference에서 비교할 수 있다시피, detail 재현 능력이 훨씬 뛰어남.

Base Model

Adaptation(100~300) : lr=0.0005

Inference

Base

위와 동일

150 epoch

아래의 lr=0.01과 비교했을 때 산의 디테일, 물가에 반사되는 물체 등 퀄리티가 훨씬 나은 것을 볼 수 있다.

lr=0.01

base

300 epoch

008.jpg

Original Image

Base Model

Adaptation(150~300)

100, 200 사망

Infenrece

Base Model

150 epoch

300 epoch


결론

베이스 모델의 성능이 애초에 좋지 못해서 어쩔 수 없는듯;

profile
Theoretical Deep Learning

0개의 댓글