在關於原理里面已經講了adversial 這個東西的原理以及流程,
這個算法本身沒什么吸引,美妙的地方在於他的訓練流程!
這個篇章着重講如何跑通一個GAN的代碼---這里特指cyclegan
1 下載代碼:
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/
從這里下載代碼,然后按照redeme配置環境即可
2配置環境:
1 python3.6
2 torch必須是0.4.0
3下載數據集,按照reame,沒問題
在我順利跑通前,會遇到一個意想不到的錯誤:
WARNING:root:Setting up a new session...
這個錯誤是因為我的display(可視化)有些問題,目前解決方式是干脆不要可視化了,
train.py里面把關於
visualizer的一切都注釋掉!
test的時候,遇到了一個問題,在我把visualizer注釋掉之后,生成圖片遇到了問題
此時我進行了幾個操作
1把tensor轉為image
2 image.save
具體代碼如下:
其中visuals是一個tensor
unloader = transforms.ToPILImage()
def tensor_to_PIL(tensor):
image = tensor.cpu().clone()
image = image.squeeze(0)
image = unloader(image)
return image
image = tensor.cpu().clone()
image = image.squeeze(0)
image = unloader(image)
return image
abc=tensor_to_PIL(visuals['fake_A'][0])
abc.save('./imggg/'+str(counttt)+'.jpg')
然后就可以跑通了
接下來是換數據集,
換數據集要做到一點:domian a 與domain b之間的差距不能太大,
比如如果domain a 是汽車,domian b是房子,這樣什么也學不到
所以最好的就是domian a 是普通的馬,domian b是斑馬