在前一段時間,,Han Zhang 和 Goodfellow 等研究者提出添加了自注意力機制的生成對抗網(wǎng)絡(luò),,這種網(wǎng)絡(luò)可使用全局特征線索來生成高分辨率細節(jié)。本文介紹了自注意力生成對抗網(wǎng)絡(luò)的 PyTorch 實現(xiàn),,讀者也可以嘗試這一新型生成對抗網(wǎng)絡(luò),。
項目地址:https://github.com/heykeetae/Self-Attention-GAN
這個資源庫提供了一個使用 PyTorch 實現(xiàn)的 SAGAN。其中作者準備了 wgan-gp 和 wgan-hinge 損失函數(shù),,但注意 wgan-gp 有時與譜歸一化(spectral normalization)是不匹配的,;因此,,作者會移除模型所有的譜歸一化來適應 wgan-gp。
在這個實現(xiàn)中,,自注意機制會應用到生成器和鑒別器的兩個網(wǎng)絡(luò)層,。像素級的自注意力會增加 GPU 資源的調(diào)度成本,且每個像素有不同的注意力掩碼,。Titan X GPU 大概可選擇的批量大小為 8,,你可能需要減少自注意力模塊的數(shù)量來減少內(nèi)存消耗。
目前更新狀態(tài):
注意力可視化 (LSUN Church-outdoor)
無監(jiān)督設(shè)置(現(xiàn)未使用標簽)
已應用:Spectral Normalization(代碼來自 https://github.com/christiancosgrove/pytorch-spectral-normalization-gan)
已實現(xiàn):自注意力模塊(self-attention module),、兩時間尺度更新規(guī)則(TTUR),、wgan-hinge 損失函數(shù)和 wgan-gp 損失函數(shù)
結(jié)果
下圖展示了 LSUN 中的注意力結(jié)果 (epoch #8):
SAGAN 在 LSUN church-outdoor 數(shù)據(jù)集上的逐像素注意力結(jié)果。這表示自注意力模塊的無監(jiān)督訓練依然有效,,即使注意力圖本身并不具有可解釋性,。更好的圖片生成結(jié)果以后會添加,上面這些是在生成器第層 3 和層 4 中的自注意力的可視化,,它們的尺寸依次是 16 x 16 和 32 x 32,,每一張都包含 64 張注意力圖的可視化。要可視化逐像素注意力機制,,我們只能如左右兩邊的數(shù)字顯示選擇一部分像素。
CelebA 數(shù)據(jù)集 (epoch on the left, 還在訓練中):
LSUN church-outdoor 數(shù)據(jù)集 (epoch on the left, 還在訓練中):
訓練環(huán)境:
Python 3.5+ (https://www.continuum.io/downloads)
PyTorch 0.3.0 (http://pytorch.org/)
用法
1. 克隆版本庫
$ git clone https://github.com/heykeetae/Self-Attention-GAN.git
$ cd Self-Attention-GAN
2. 下載數(shù)據(jù)集 (CelebA 或 LSUN)
$ bash download.sh CelebA
or
$ bash download.sh LSUN
3. 訓練
$ python python main.py --batch_size 6 --imsize 64 --dataset celeb --adv_loss hinge --version sagan_celeb
or
$ python python main.py --batch_size 6 --imsize 64 --dataset lsun --adv_loss hinge --version sagan_lsun
4. 享受結(jié)果吧~
$ cd samples/sagan_celeb
or
$ cd samples/sagan_lsun
每 100 次迭代生成一次樣本,,抽樣率可根據(jù)參數(shù) --sample_step (ex,—sample_step 100) 控制,。
論文:Self-Attention Generative Adversarial Networks
論文地址:https://arxiv.org/abs/1805.08318
在此論文中,我們提出了自注意生成式對抗網(wǎng)絡(luò)(SAGAN),,能夠為圖像生成任務(wù)實現(xiàn)注意力驅(qū)動的,、長范圍的依存關(guān)系建模。傳統(tǒng)的卷積 GAN 只根據(jù)低分辨特征圖中的空間局部點生成高分辨率細節(jié)(detail),。在 SAGAN 中,,可使用所有特征點的線索來生成高分辨率細節(jié),而且鑒別器能檢查圖片相距較遠部分的細微細節(jié)特征是否彼此一致,。不僅如此,,近期研究表明鑒別器調(diào)節(jié)可影響 GAN 的表現(xiàn)。根據(jù)這個觀點,,我們在 GAN 生成器中加入了譜歸一化(spectral normalization),,并發(fā)現(xiàn)這樣可以提高訓練動力學。我們所提出的 SAGAN 達到了當前最優(yōu)水平,,在極具挑戰(zhàn)性的 ImageNet 數(shù)據(jù)集中將最好的 inception 分數(shù)記錄從 36.8 提高到 52.52,,并將 Frechet Inception 距離從 27.62 減少到 18.65。注意力層的可視化展現(xiàn)了生成器可利用其附近環(huán)境對物體形狀做出反應,,而不是直接使用固定形狀的局部區(qū)域,。