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...