Python人工智能學習PyTorch實現(xiàn)WGAN示例詳解
1.GAN簡述
在GAN中,有兩個模型,一個是生成模型,用于生成樣本,一個是判別模型,用于判斷樣本是真還是假。但由于在GAN中,使用的JS散度去計算損失值,很容易導致梯度彌散的情況,從而無法進行梯度下降更新參數(shù),于是在WGAN中,引入了Wasserstein Distance,使得訓練變得穩(wěn)定。本文中我們以服從高斯分布的數(shù)據(jù)作為樣本。
2.生成器模塊
這里從2維數(shù)據(jù),最終生成2維,主要目的是為了可視化比較方便。也就是說,在生成模型中,我們輸入雜亂無章的2維的數(shù)據(jù),通過訓練之后,可以生成一個贗品,這個贗品在模仿高斯分布。
3.判別器模塊
判別器同樣輸入的是2維的數(shù)據(jù)。比如我們上面的生成器,生成了一個2維的贗品,輸入判別器之后,它能夠最終輸出一個sigmoid轉(zhuǎn)換后的結(jié)果,相當于是一個概率,從而判別,這個贗品到底能不能達到以假亂真的程度。
4.數(shù)據(jù)生成模塊
由于我們使用的是高斯模型,因此,直接生成我們需要的數(shù)據(jù)即可。我們在這個模塊中,生成8個服從高斯分布的數(shù)據(jù)。
5.判別器訓練
由于使用JS散度去計算損失的時候,會很容易出現(xiàn)梯度極小,接近于0的情況,會使得梯度下降無法進行,因此計算損失的時候,使用了Wasserstein Distance,去度量兩個分布之間的差異。因此我們假如了梯度懲罰的因子。
其中,梯度懲罰的模塊如下:
6.生成器訓練
這里的訓練是緊接著判別器訓練的。也就是說,在一個周期里面,先訓練判別器,再訓練生成器。
7.結(jié)果可視化
通過visdom可視化損失值,通過matplotlib可視化分布的預測結(jié)果。
以上就是人工智能學習PyTorch實現(xiàn)WGAN示例詳解的詳細內(nèi)容,更多關于PyTorch實現(xiàn)WGAN的資料請關注腳本之家其它相關文章!
相關文章
Python簡單實現(xiàn)Base64編碼和解碼的方法
這篇文章主要介紹了Python簡單實現(xiàn)Base64編碼和解碼的方法,結(jié)合具體實例形式分析了Python實現(xiàn)base64編碼解碼相關函數(shù)與使用技巧,需要的朋友可以參考下2017-04-04使用python在校內(nèi)發(fā)人人網(wǎng)狀態(tài)(人人網(wǎng)看狀態(tài))
人人網(wǎng)怎么發(fā)狀態(tài)?下面使用python實現(xiàn)這個功能,大家參考使用吧2014-02-02Keras 在fit_generator訓練方式中加入圖像random_crop操作
這篇文章主要介紹了Keras 在fit_generator訓練方式中加入圖像random_crop操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Python使用pytest-playwright的原因分析
pytest-playwright 是一個 Python 包,它允許您使用 Microsoft 的 Playwright 庫在 Python 項目中進行端到端測試,這篇文章主要介紹了Python為什么使用pytest-playwright,需要的朋友可以參考下2023-03-03詳解Python結(jié)合Genetic?Algorithm算法破解網(wǎng)易易盾拼圖驗證
很多網(wǎng)站在登錄或者注冊時都會遇到拼圖驗證碼,這種拼圖驗證碼實際上是多個小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個基于Python?Genetic?Algorithm的破解拼圖驗證碼的辦法,需要的可以參考一下2022-02-02