Pytorch實施學習與生成對抗網絡發現跨域關係的實施。

* readme.md中的所有樣本均由神經網絡染色,除了每行的第一個圖像。
*網絡結構與作者的代碼略有不同(此處)。
首先通過以下方式下載數據集(來自Pix2Pix)
$ bash ./data/download_dataset.sh dataset_name
facades :來自CMP立面數據集的400張圖像。cityscapes :2975張來自CityScapes培訓集中的圖像。maps :1096培訓圖像從Google地圖上刮下來edges2shoes :UT Zappos50k數據集的50K培訓圖像。edges2handbags :Igan Project的137K亞馬遜手提包圖像。或者,您可以通過放置圖像來使用自己的數據集。
data
├── YOUR_DATASET_NAME
│ ├── A
│ | ├── xxx.jpg (name doesn't matter)
│ | ├── yyy.jpg
│ | └── ...
│ └── B
│ ├── zzz.jpg
│ ├── www.jpg
│ └── ...
└── download_dataset.sh
每個數據集中的所有圖像都應具有相同的大小,例如使用ImageMagick:
# for Ubuntu
$ sudo apt-get install imagemagick
$ mogrify -resize 256x256! -quality 100 -path YOUR_DATASET_NAME/A/*.jpg
$ mogrify -resize 256x256! -quality 100 -path YOUR_DATASET_NAME/B/*.jpg
# for Mac
$ brew install imagemagick
$ mogrify -resize 256x256! -quality 100 -path YOUR_DATASET_NAME/A/*.jpg
$ mogrify -resize 256x256! -quality 100 -path YOUR_DATASET_NAME/B/*.jpg
# for scale and center crop
$ mogrify -resize 256x256^ -gravity center -crop 256x256+0+0 -quality 100 -path ../A/*.jpg
訓練模型:
$ python main.py --dataset=edges2shoes --num_gpu=1
$ python main.py --dataset=YOUR_DATASET_NAME --num_gpu=4
測試模型(使用load_path ):
$ python main.py --dataset=edges2handbags --load_path=logs/edges2handbags_2017-03-18_10-55-37 --num_gpu=0 --is_train=False
來自二維高斯混合模型的樣品結果。 ipython筆記本
#迭代:0 :

#迭代:10000 :

#迭代:11200 :
x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) (鞋子 - >手袋 - > shoe)



x_B > G_BA(x_B) - > G_AB(G_BA(x_B)) (手提包 - > shoe->手袋)



x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) - > G_AB(G_BA(G_AB(x_A))) - > G_BA(G_AB(G_BA(G_AB(x_A)))) - > ...







#迭代:9600 :
x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) (顏色 - > sketch->顏色)



x_B > G_BA(x_B) - > G_AB(G_BA(x_B)) (草圖 - > color-> sketch)



x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) - > G_AB(G_BA(G_AB(x_A))) - > G_BA(G_AB(G_BA(G_AB(x_A)))) - > ...







#迭代:9500 :
x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) (顏色 - > sketch->顏色)



x_B > G_BA(x_B) - > G_AB(G_BA(x_B)) (草圖 - > color-> sketch)



x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) - > G_AB(G_BA(G_AB(x_A))) - > G_BA(G_AB(G_BA(G_AB(x_A)))) - > ...







#迭代:8350 :
x_B > G_BA(x_B) - > G_AB(G_BA(x_B)) (圖像 - >分段 - >圖像)



x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) (分段 - > image->分段)



#迭代:22200 :
x_B > G_BA(x_B) - > G_AB(G_BA(x_B)) (圖像 - >分段 - >圖像)



x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) (分段 - > image->分段)



密集分割數據集的生成和重建看起來很奇怪,這些數據不包括在論文中。
我想對重建的mean square error損失的天真選擇需要在此數據集上進行一些更改。
#迭代:19450 :
x_B > G_BA(x_B) - > G_AB(G_BA(x_B)) (圖像 - >分段 - >圖像)



x_A > G_AB(x_A) - > G_BA(G_AB(x_A)) (分段 - > image->分段)



Taehoon Kim / @carpedm20