簡體   English   中英

Wasserstein GAN 評論家訓練歧義

[英]Wasserstein GAN critic training ambiguity

我正在運行基於 DCGAN 的 GAN,並且正在試驗 WGAN,但對如何訓練 WGAN 有點困惑。

在官方的Wasserstein GAN PyTorch 實現中,據說鑒別器/批評器在每次生成器訓練中都訓練了Diters (通常 5 次)。

這是否意味着評論家/鑒別器在Diters批次整個數據集Diters時間上Diters 如果我沒記錯的話,官方實現建議鑒別器/評論器是在整個數據集Diters時間上訓練的,但 WGAN 的其他實現(在 PyTorch 和 TensorFlow 等中)則相反。

哪個是正確的? WGAN 論文(至少對我而言)表明它是Diters batches 對整個數據集的訓練顯然要慢幾個數量級。

提前致謝!

正確的做法是將迭代視為批處理。 在原始論文中,對於評論家/鑒別器的每次迭代,他們對一批大小為m的真實數據和一批大小為m的先驗樣本p(z)進行采樣以對其進行處理。 在通過Diters迭代訓練評論家之后,他們訓練生成器,該生成器也從對p(z)的一批先前樣本進行采樣開始。 因此,每次迭代都在處理一個批次。

官方實現中,這也在發生。 可能令人困惑的是,他們使用變量名稱niter來表示訓練模型的niter數。 盡管他們使用不同的方案在第162 -166 行設置Diters

# train the discriminator Diters times
    if gen_iterations < 25 or gen_iterations % 500 == 0:
        Diters = 100
    else:
        Diters = opt.Diters

就像論文中一樣,他們正在對Diters批次訓練評論家。

WGAN 的這種實現將其顯示為生成器每次運行的鑒別器的 Diter 批次 - https://github.com/shayneobrien/generative-models/blob/74fbe414f81eaed29274e273f1fb6128abdb0ff5/src/w_gan.py#L88

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM