溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keras GAN訓練是loss不發(fā)生變化,accuracy一直為0.5怎么辦

發(fā)布時間:2020-07-02 14:41:19 來源:億速云 閱讀:325 作者:清晨 欄目:開發(fā)技術

小編給大家分享一下keras GAN訓練是loss不發(fā)生變化,accuracy一直為0.5怎么辦,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

1、Binary Cross Entropy

常用于二分類問題,當然也可以用于多分類問題,通常需要在網絡的最后一層添加sigmoid進行配合使用,其期望輸出值(target)需要進行one hot編碼,另外BCELoss還可以用于多分類問題Multi-label classification.

定義:

For brevity, let x = output, z = target. The binary cross entropy loss is
loss(x, z) = - sum_i (x[i] * log(z[i]) + (1 - x[i]) * log(1 - z[i]))

對應的代碼為:

def binary_crossentropy(t,o):
return -(t*tf.log(o+eps) + (1.0-t)*tf.log(1.0-o+eps))

2、Categorical cross-entropy

keras GAN訓練是loss不發(fā)生變化,accuracy一直為0.5怎么辦

p are the predictions, t are the targets, i denotes the data point and j denotes the class.

適用于多分類問題,并使用softmax作為輸出層的激活函數的情況。

補充知識:訓練GAN的一些小貼士

下面是我認識到自己犯過的一些錯誤,以及我從中學到的一些東西。所以,如果你是GANs的新手,并沒有看到在訓練方面取得很大的成功,也許看看以下幾個方面會有所幫助:

1、大卷積核和更多的濾波器

更大的卷積核覆蓋了前一層圖像中的更多像素,因此可以查看更多信息。5x5的核與CIFAR-10配合良好,在判別器中使用3x3核使判別器損耗迅速趨近于0。對于生成器,你希望在頂層的卷積層有更大的核,以保持某種平滑。在較低的層,我沒有看到改變內核大小的任何主要影響。

濾波器的數量可以大量增加參數的數量,但通常需要更多的濾波器。我在幾乎所有的卷積層中都使用了128個濾波器。使用較少的濾波器,特別是在生成器中,使得最終生成的圖像過于模糊。因此,看起來更多的濾波器可以幫助捕獲額外的信息,最終為生成的圖像增加清晰度。

2、標簽翻轉(Generated=True, Real=False)

雖然一開始看起來很傻,但對我有用的一個主要技巧是更改標簽分配。

如果你使用的是Real Images = 1,而生成的圖像= 0,則使用另一種方法會有所幫助。正如我們將在后面看到的,這有助于在早期迭代中使用梯度流,并幫助使梯度流動。

3、使用有噪聲的標簽和軟標簽

這在訓練判別器時是非常重要的。硬標簽(1或0)幾乎扼殺了早期的所有學習,導致識別器非??斓亟咏?損失。最后,我使用0到0.1之間的隨機數表示0標簽(真實圖像),使用0.9到1.0之間的隨機數表示1標簽(生成的圖像)。在訓練生成器時不需要這樣做。

此外,增加一些噪音的訓練標簽也是有幫助的。對于輸入識別器的5%的圖像,標簽被隨機翻轉。比如真實的被標記為生成的,生成的被標記為真實的。

4、使用批歸一化是有用的,但是需要有其他的東西也是合適的

批歸一化無疑有助于最終的結果。添加批歸一化后,生成的圖像明顯更清晰。但是,如果你錯誤地設置了卷積核或濾波器,或者識別器的損失很快達到0,添加批歸一化可能并不能真正幫助恢復。

5、每次一個類別

為了更容易地訓練GANs,確保輸入數據具有相似的特征是很有用的。例如,與其在CIFAR-10的所有10個類中都訓練GAN,不如選擇一個類(例如,汽車或青蛙)并訓練GANs從該類生成圖像。DC-GAN的其他變體在學習生成多個類的圖像方面做得更好。例如,以類標簽為輸入,生成基于類標簽的圖像。但是,如果你從一個普通的DC-GAN開始,最好保持事情簡單。

6、查看梯度

如果可能的話,試著監(jiān)控梯度以及網絡中的損失。這些可以幫助你更好地了解訓練的進展,甚至可以幫助你在工作不順利的情況下進行調試。

理想情況下,生成器應該在訓練的早期獲得較大的梯度,因為它需要學習如何生成真實的數據。另一方面,判別器并不總是在早期獲得較大的梯度,因為它可以很容易地區(qū)分真假圖像。一旦生成器得到足夠的訓練,判別器就很難分辨真假圖像。它會不斷出錯,并得到大的梯度。

看完了這篇文章,相信你對keras GAN訓練是loss不發(fā)生變化,accuracy一直為0.5怎么辦有了一定的了解,想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI