欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決keras GAN訓(xùn)練是loss不發(fā)生變化,accuracy一直為0.5的問(wèn)題

 更新時(shí)間:2020年07月02日 09:31:17   作者:Yohanna  
這篇文章主要介紹了解決keras GAN訓(xùn)練是loss不發(fā)生變化,accuracy一直為0.5的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1、Binary Cross Entropy

常用于二分類(lèi)問(wèn)題,當(dāng)然也可以用于多分類(lèi)問(wèn)題,通常需要在網(wǎng)絡(luò)的最后一層添加sigmoid進(jìn)行配合使用,其期望輸出值(target)需要進(jìn)行one hot編碼,另外BCELoss還可以用于多分類(lèi)問(wèn)題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]))

對(duì)應(yīng)的代碼為:

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

2、Categorical cross-entropy

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

適用于多分類(lèi)問(wèn)題,并使用softmax作為輸出層的激活函數(shù)的情況。

補(bǔ)充知識(shí):訓(xùn)練GAN的一些小貼士

下面是我認(rèn)識(shí)到自己犯過(guò)的一些錯(cuò)誤,以及我從中學(xué)到的一些東西。所以,如果你是GANs的新手,并沒(méi)有看到在訓(xùn)練方面取得很大的成功,也許看看以下幾個(gè)方面會(huì)有所幫助:

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

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

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

2、標(biāo)簽翻轉(zhuǎn)(Generated=True, Real=False)

雖然一開(kāi)始看起來(lái)很傻,但對(duì)我有用的一個(gè)主要技巧是更改標(biāo)簽分配。

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

3、使用有噪聲的標(biāo)簽和軟標(biāo)簽

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

此外,增加一些噪音的訓(xùn)練標(biāo)簽也是有幫助的。對(duì)于輸入識(shí)別器的5%的圖像,標(biāo)簽被隨機(jī)翻轉(zhuǎn)。比如真實(shí)的被標(biāo)記為生成的,生成的被標(biāo)記為真實(shí)的。

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

批歸一化無(wú)疑有助于最終的結(jié)果。添加批歸一化后,生成的圖像明顯更清晰。但是,如果你錯(cuò)誤地設(shè)置了卷積核或?yàn)V波器,或者識(shí)別器的損失很快達(dá)到0,添加批歸一化可能并不能真正幫助恢復(fù)。

5、每次一個(gè)類(lèi)別

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

6、查看梯度

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

理想情況下,生成器應(yīng)該在訓(xùn)練的早期獲得較大的梯度,因?yàn)樗枰獙W(xué)習(xí)如何生成真實(shí)的數(shù)據(jù)。另一方面,判別器并不總是在早期獲得較大的梯度,因?yàn)樗梢院苋菀椎貐^(qū)分真假圖像。一旦生成器得到足夠的訓(xùn)練,判別器就很難分辨真假圖像。它會(huì)不斷出錯(cuò),并得到大的梯度。

以上這篇解決keras GAN訓(xùn)練是loss不發(fā)生變化,accuracy一直為0.5的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python輸出大括號(hào)的幾種方法

    Python輸出大括號(hào)的幾種方法

    本文主要介紹了Python輸出大括號(hào)的幾種方法,通過(guò)print函數(shù)的字符串格式化、f-string、轉(zhuǎn)義字符等方式,可以在Python中輸出大括號(hào),感興趣的可以了解一下
    2024-01-01
  • 淺談numpy 函數(shù)里面的axis參數(shù)的含義

    淺談numpy 函數(shù)里面的axis參數(shù)的含義

    這篇文章主要介紹了numpy 函數(shù)里面的axis參數(shù)的含義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • pycharm運(yùn)行pytest中文編碼格式錯(cuò)亂解決

    pycharm運(yùn)行pytest中文編碼格式錯(cuò)亂解決

    這篇文章主要為大家介紹了pycharm運(yùn)行pytest中文編碼格式錯(cuò)亂的解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python常用正則函數(shù)使用方法詳解

    Python常用正則函數(shù)使用方法詳解

    Python中常用的正則表達(dá)式處理函數(shù)有re.match(),re.search(),re.sub(),re.split(),re.findall(),re.compile()今天為大家介紹這些函數(shù)的使用方法
    2021-10-10
  • python 多進(jìn)程通信模塊的簡(jiǎn)單實(shí)現(xiàn)

    python 多進(jìn)程通信模塊的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要介紹了python 多進(jìn)程通信模塊的簡(jiǎn)單實(shí)現(xiàn),需要的朋友可以參考下
    2014-02-02
  • Python安裝圖文教程 Pycharm安裝教程

    Python安裝圖文教程 Pycharm安裝教程

    這篇文章主要為大家詳細(xì)介紹了Pycharm及Python安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • django項(xiàng)目簡(jiǎn)單調(diào)取百度翻譯接口的方法

    django項(xiàng)目簡(jiǎn)單調(diào)取百度翻譯接口的方法

    這篇文章主要介紹了django項(xiàng)目簡(jiǎn)單調(diào)取百度翻譯接口的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-08-08
  • Matplotlib配色之Colormap詳解

    Matplotlib配色之Colormap詳解

    這篇文章主要介紹了Matplotlib配色之Colormap詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn)

    使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn)

    這篇文章主要介紹了使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python如何向IP地址發(fā)送字符串

    Python如何向IP地址發(fā)送字符串

    在Python中,向IP地址發(fā)送字符串通常意味著你需要通過(guò)某種協(xié)議來(lái)實(shí)現(xiàn)通信,最常見(jiàn)的協(xié)議包括TCP和UDP,這篇文章主要介紹了Python向IP地址發(fā)送字符串的示例代碼,需要的朋友可以參考下
    2024-08-08

最新評(píng)論