【論文精讀+項(xiàng)目實(shí)戰(zhàn)】基于CycleGan圖像風(fēng)格遷移實(shí)戰(zhàn)!迪哥帶你揭開(kāi)照片秒變

CycleGAN

不需要配對(duì)也能完成網(wǎng)絡(luò)訓(xùn)練

輸入數(shù)據(jù)只需要兩組數(shù)據(jù)集即可,無(wú)需指定對(duì)應(yīng)關(guān)系,例如馬和斑馬



trainA

trainB





patchGAN的作用,輸出的是一個(gè)N*N的矩陣,需要基于感受野來(lái)計(jì)算損失
基于感受野在特征圖上的預(yù)測(cè)結(jié)果和標(biāo)簽(也需設(shè)置成N*N)計(jì)算損失



下載數(shù)據(jù)集,使用bash命令

dataset

下載地址,但是cityscape比較特殊,要去官網(wǎng)下載

$FILE

數(shù)據(jù)集列表

數(shù)據(jù)集目錄設(shè)置,測(cè)試集可自己指定

訓(xùn)練

train.py

預(yù)訓(xùn)練模型

訓(xùn)練好的一些模型

網(wǎng)址

用別人訓(xùn)練好的模型就可以直接得到一個(gè)測(cè)試結(jié)果,用于測(cè)試使用
預(yù)訓(xùn)練好的模型放在checkpoints里面,自己訓(xùn)練好的模型也會(huì)存放在這里

visdem工具
使用train.py前需要配置參數(shù)

configuration 指定參數(shù)
如測(cè)試集
指定測(cè)試集路徑
--dataroot 數(shù)據(jù)路徑
--name 預(yù)訓(xùn)練模型
--model


results里面存放輸出結(jié)果,包含一個(gè)真的一個(gè)假的

訓(xùn)練斷點(diǎn)看一步步是怎么做的

訓(xùn)練參數(shù)指定

如果顯存太小可能就是要改輸入大小為128*128,項(xiàng)目最小顯存8G以上,12G比較好,不然容易報(bào)錯(cuò),batchsize=1,改圖像輸入大小

debug模式

先定義好數(shù)據(jù),構(gòu)建數(shù)據(jù) ,把路徑指定好。讀數(shù)據(jù)

這里判斷模型模式是cycle-gan還是pixel2pixel

指定路徑

transform 操作


把圖像數(shù)據(jù)映射到0-1間,GAN中希望輸入為-1-1更好
A、B操作差不多


batchsize
model構(gòu)建損失函數(shù)

生成器。A-B ,B-A架構(gòu)一樣



一般特征圖越來(lái)越小,特征圖個(gè)數(shù)越來(lái)越多然后還原,最后輸出一樣和輸入,卷積和反卷積

默認(rèn)加9個(gè)殘差模塊提特征


上采樣,反卷積

一定是reflectionpad2d(3)

判別器
最后落到一個(gè)點(diǎn)
