GAN的一些技巧

2021-10-01 12:53:46 字數 477 閱讀 5049

gan的技巧:

1.對真實進行歸一化,與生成分布一樣,也就是[-1,1].

2.隨機雜訊使用高斯分布,不要使用均勻分布,也就是在**中使用torch.randn,而不是torch.rand

3.初始化權重很有必要,詳細見model.py中的weight_init函式

4.在訓練時,在鑑別器中產生的noise,生成器也要用這個noise進行引數,這點很重要。我最開始的時候就是鑑別器隨機產生noise,生成器也隨機產生noise,訓練得很不好。

5.在訓練過程中,很有可能鑑別器的loss等於0(鑑別器太強了,起初我試過減小鑑別器的學習率,但還是會有這個情況,我猜想原因是在某乙個batch中,鑑別器恰好將隨機雜訊產生的和真實完全區分開,loss為0),導致生成器崩潰(梯度瀰散),所以最好按多少個epoch儲存模型,然後在匯入模型再訓練。個人覺得資料增強和增大batchsize會減弱這種情況的可能性,這個還未實踐。

此外可以參考:gan的相關原理與技巧

GAN的實現和一些問題

gan的學習是乙個二人博弈問題,最終目標是達到納什平衡。對抗指的是生成網路和判別網路的互相對抗。生成網路盡可能生成逼真樣本,判別網路則盡可能去判別該樣本是真實樣本,還是生成的假樣本。示意圖如下 生成器盡量去生成一種合理的資料分布,可以理解為真實的資料,從而讓判別器無法判別樣本究竟來自何方,兩者的訓練...

android UI 的一些技巧

一 去掉edittext的背景顏色 android background null 二 listview 修改某行的值,因為一些功能邏輯,需要修改listview某行的值,那麼就可通過下面的方法,獲取到對應的listview的某行,然後修改。private void updateview int i...

MySQL的一些技巧

使用rand 獲取隨機結果 在order by語句中可按照如下的隨機順序檢索資料行 mysql select from tbl name order by rand order by rand 同 limit 的結合從一組列中選擇隨機樣本很有用 mysql select from table1,ta...