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