国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

nvidia StyleGAN 結(jié)構(gòu)詳解

2020-05-08 23:14 作者:nyasyamorina  | 我要投稿

置頂: 原版StyleGAN里有很多自定義參數(shù), 為了方便這里只講述默認(rèn)結(jié)構(gòu)

并且在源碼里有部分地方結(jié)構(gòu)不太人性化, 這里為了更直觀地表達(dá), 會(huì)調(diào)整部分結(jié)構(gòu), 但實(shí)際上與源碼的效果是一致的

相關(guān)操作:

在StyleGAN里(包括判別器), 特征圖的通道數(shù)量與特征圖大小直接掛鉤, 默認(rèn)計(jì)算公式如下:??(注: 特征圖大小必定為2的整數(shù)次方的正方形, 其中nf是通道數(shù), res是特征圖邊長(zhǎng))

并且大量使用一個(gè)叫"blur"的模糊化操作, blur是利用一個(gè)卷積核在每個(gè)通道上做卷積操作, 這不同與平常的卷積, 在所有通道上做卷積操作, 注意blur不影響特征圖的大小, 也就是說(shuō)需要在特征圖上pad一圈0再卷積

星號(hào)是數(shù)學(xué)上的卷積

在生成器里有一個(gè)叫上采樣的操作, 它其實(shí)類似與平均池化的反操作, 同理, 另外一個(gè)叫下采樣的操作就是平均池化了

StylaGAN全程使用leaky_relu作為激活函數(shù)act, 但內(nèi)部使用激活函數(shù)的頻率比一般情況要少, 所以激活函數(shù)也會(huì)另外標(biāo)注, leakyReLU計(jì)算:

另外, biasact也會(huì)單獨(dú)標(biāo)注, 沒(méi)寫的就是沒(méi)有

StyleGAN里共計(jì)3個(gè)神經(jīng)網(wǎng)絡(luò), G_mapping, G_synthesis判別器D, 首先先從判別器D開始:

D的結(jié)構(gòu)可以表示為這樣:

其中Block的結(jié)構(gòu)為:

至于中間的MinibatchStddev, 維度變換過(guò)于抽象, 這里直接貼代碼吧

其實(shí)就是根據(jù)輸入x生成多一張?zhí)卣鲌D

主生成器G_style:?內(nèi)部有兩個(gè)獨(dú)立的神經(jīng)網(wǎng)絡(luò):?G_mappingG_synthesis, 外部輸入在G_mapping, 經(jīng)處理后再作為G_synthesis旁路輸入得到圖像輸出, 結(jié)構(gòu)就像官方論文給出那樣

其中G_mapping為簡(jiǎn)單的MLP:?(N, 512) 輸入, 經(jīng)過(guò)pixel_norm, 再通過(guò)8次有bias和act的FC, 輸出(N, 512), pixel_norm計(jì)算如下:?

為了避免/0, 會(huì)在下面加上一個(gè)極小值ε

而在G_synthesis里, 可以分為一個(gè)一個(gè)block, 而block可以分為上半部分和下半部分, 而每部分又可以分為convlayer_epilogue, 由于兩部分的conv有丶不同, 所以上半部分叫做conv0, 下半部分叫conv1, 其中第一塊block沒(méi)有conv0, 并且G_synthesis的輸入為形狀為(N, 512, 4, 4), 全部都是1.0的數(shù)組?

conv0:

這里Conv2d沒(méi)有bias和act, nf就是上面提到的nf

conv1就是簡(jiǎn)單一個(gè)沒(méi)有bias和act的Conv2d

layer_epilogue是StyleGAN的重點(diǎn), 而layer_epilogue又分成2部分, 流程如下:

其中instance_norm是先減去均值再進(jìn)行pixel_norm, 具體表示如下:

Add noise計(jì)算過(guò)程如下:? 其中noise是符合正態(tài)分布的隨機(jī)數(shù)組

在寫代碼時(shí)為了避免歧義,?應(yīng)該有: noise.shape=(N,1,H,W), weight.shape=bais.shape=(1,C,1,1), x += noise*weight+bias

StyleMod的另一個(gè)輸入w為G_mapping的輸出,? w經(jīng)過(guò)一個(gè)有bias的FC后, 得到長(zhǎng)度為2*C的數(shù)組, 而數(shù)組的前半部分作為weight, 后半部分作為bias加入到x里, 流程如下:

結(jié)語(yǔ): 我至今不知道怎么在tf里搞權(quán)重到np.ndarray

nvidia StyleGAN 結(jié)構(gòu)詳解的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平泉县| 浦江县| 内乡县| 玉林市| 隆化县| 云和县| 长顺县| 罗定市| 香格里拉县| 新兴县| 柳林县| 阳山县| 平顶山市| 通榆县| 神木县| 大理市| 普定县| 宿迁市| 威海市| 南宫市| 五峰| 醴陵市| 龙陵县| 饶平县| 台北市| 海口市| 招远市| 铁力市| 抚远县| 定日县| 邹城市| 林口县| 萨嘎县| 冀州市| 邛崃市| 聊城市| 子长县| 临武县| 兰西县| 房山区| 陆良县|