91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于網(wǎng)絡(luò)本身即可以生成數(shù)據(jù)能力的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)了解嘛?

新機器視覺 ? 來源:新機器視覺 ? 作者:George Seif ? 2022-05-24 16:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

生成對抗網(wǎng)絡(luò)(GANs,https://en.wikipedia.org/wiki/Generative_adversarial_network)是一類具有基于網(wǎng)絡(luò)本身即可以生成數(shù)據(jù)能力的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。由于GANs的強大能力,在深度學習領(lǐng)域里對它們的研究是一個非常熱門的話題。在過去很短的幾年里,它們已經(jīng)從產(chǎn)生模糊數(shù)字成長到創(chuàng)造如真實人像般逼真的圖像。

d70d1f78-da6f-11ec-ba43-dac502259ad0.pngd738fd28-da6f-11ec-ba43-dac502259ad0.jpg

1 GAN的工作方式


GANs屬于生成模型的一類(https://en.wikipedia.org/wiki/Generative_model)。這意味著它們能夠產(chǎn)生,或者說是生成完全新的“有效”數(shù)據(jù)。有效數(shù)據(jù)是指網(wǎng)絡(luò)的輸出結(jié)果應(yīng)該是我們認為可以接受的目標。

舉例說明,舉一個我們希望為訓練一個圖像分類網(wǎng)絡(luò)生成一些新圖像的例子。當然對于這樣的應(yīng)用來說,我們希望訓練圖像越真實越好,可能在風格上與其他圖像分類訓練數(shù)據(jù)非常相似。

下面的圖片展示的例子是GANs已經(jīng)生成的一系列圖片。它們看起來非常真實!如果沒人告訴我們它們是計算機生成的,我們真可能認為它們是人工搜集的。

d759a5dc-da6f-11ec-ba43-dac502259ad0.jpg

漸進式GAN生成的圖像示例(圖源:https://arxiv.org/pdf/1710.10196.pdf)

為了做到這些,GANs是以兩個獨立的對抗網(wǎng)絡(luò)組成:生成器和判別器。當僅將嘈雜的圖像陣列作為輸入時,會對生成器進行訓練以創(chuàng)建逼真的圖像。別器經(jīng)過訓練可以對圖像是否真實進行分類。

GANs真正的能力來源于它們遵循的對抗訓練模式。生成器的權(quán)重是基于判別器的損失所學習到的。因此,生成器被它生成的圖像所推動著進行訓練,很難知道生成的圖像是真的還是假的。同時,生成的圖像看起來越來越真實,判別器在分辨圖像真實與否的能力變得越來越強,無論圖像用肉眼看起來多么的相似。

從技術(shù)的角度來看,判別器的損失即是分類圖像是真是假的錯誤值;我們正在測量它區(qū)分真假圖像的能力。生成器的損失將取決于它在用假圖像“愚弄”判別器的能力,即判別器僅對假圖像的分類錯誤,因為生成器希望該值越高越好。

因此,GANs建立了一種反饋回路,其中生成器幫助訓練判別器,而判別器又幫助訓練生成器。它們同時變得更強。下面的圖表有助于說明這一點。

d78eb3bc-da6f-11ec-ba43-dac502259ad0.png

生成對抗網(wǎng)絡(luò)的結(jié)構(gòu)說明

2在PyTorch中訓練GAN來生成數(shù)字


現(xiàn)在我們將通過一個例子來展示如何使用PyTorch建立和訓練我們自己的GAN!MNIST數(shù)據(jù)集包含60000個訓練數(shù)據(jù),數(shù)據(jù)是像素尺寸28x28的1-9的黑白數(shù)字圖片。這個數(shù)據(jù)集非常適合我們的用例,同時也是非常普遍的用于機器學習的概念驗證以及一個非常完備的集合。

d7af8042-da6f-11ec-ba43-dac502259ad0.jpg

MNIST 數(shù)據(jù)部分集,圖源:https://www.researchgate.net/figure/A-subset-of-the-MNIST-database-of-handwritten-digits_fig4_232650721

我們將從import開始,所需的僅僅是PyTorch中的東西。


												
import torch    from torch import nn, optim    from torch.autograd.variable import Variable
import torchvision    import torchvision.transforms as transforms

接下來,我們?yōu)橛柧殧?shù)據(jù)準備DataLoader。請記住,我們想要的是為MNIST生成隨機數(shù)字,即從0到9。因此,我也將需要為這10個數(shù)字建立標簽。

d7d65f1e-da6f-11ec-ba43-dac502259ad0.png

現(xiàn)在我們可以開始建立網(wǎng)絡(luò)了,從下面的Discriminator(判別器)網(wǎng)絡(luò)開始,回想一下,判別器網(wǎng)絡(luò)是對圖像真實與否進行分類——它是一個圖像分類網(wǎng)絡(luò)。因此,我們的輸入是符合標準MNIST大小的圖像:28x28像素。我們把這張圖像展平成一個長度為784的。輸出是一個單獨的值,表示圖像是否是實際的MNIST數(shù)字。

d7ef1df6-da6f-11ec-ba43-dac502259ad0.png

接下來到了生成器部分。生成器網(wǎng)絡(luò)負責創(chuàng)建實際的圖像——它可以從一個純噪聲的輸入做到這一點!在這個例子中,我們要讓生成器從一個長度為100的開始——注意:這只是純隨機噪聲。從這個,我們的生成器將輸出一個長度為784的,稍后我們可以將其重塑為標準MNIST的28x28像素。

d8125726-da6f-11ec-ba43-dac502259ad0.png

為了建立訓練過程,我們將需要做以下工作:
  • 1 . 損失函數(shù)
  • 2 . 每個網(wǎng)絡(luò)的優(yōu)化器
  • 3 . 訓練次數(shù)
  • 4 . batch數(shù)量
如果我們希望網(wǎng)絡(luò)在GPU上執(zhí)行,PyTorch要求我們必須明確地把模型移動到GPU上。這部分所有的代碼如下所示。d8632ae8-da6f-11ec-ba43-dac502259ad0.png現(xiàn)在開始訓練循環(huán)。PyTorch中的訓練循環(huán)通常由一個遍歷各個訓練周期的外部循環(huán)和一個遍歷batch數(shù)據(jù)的內(nèi)部循環(huán)組成。訓練GAN的關(guān)鍵是我們需要在一個循環(huán)中更新生成器和判別器。查看下面的代碼來訓練GAN和PyTorch。這些步驟在代碼下面有更詳細的描述。d891088c-da6f-11ec-ba43-dac502259ad0.pngd8ca7144-da6f-11ec-ba43-dac502259ad0.png(1)我們首先為判別器準備 *real* 圖像數(shù)據(jù)。輸入的是一批真實的MNIST圖像。輸出全為1的,因為1表示圖像是真實的。

(2)接下來,我們將為生成器準備輸入量以便生成假圖像。回想一下,我們的生成器網(wǎng)絡(luò)采用長度為100的輸入向量,這就是我們在這里所創(chuàng)建的向量。images.size(0)用于批處理大小。

(3)通過從步驟(2)中創(chuàng)建的隨機噪聲數(shù)據(jù)向量,我們可以繞過這個向量到生成器來生成假的圖像數(shù)據(jù)。這將結(jié)合我們從步驟1的實際數(shù)據(jù)來訓練判別器。請注意,這次我們的標簽向量全為0,因為0代表假圖像的類標簽。

(4)通過假的和真的圖像以及它們的標簽,我們可以訓練我們的判別器進行分類??倱p失將是假圖像的損失+真圖像的損失。

(5)現(xiàn)在我們的判別器已經(jīng)更新,我們可以用它來進行預測。這些預測的損失將通過生成器反向傳播,這樣生成器的權(quán)重將根據(jù)它欺騙判別器的程度進行具體更新

(5a)生成一些假圖像進行預測

(5b)使用判別器對假圖像進行分批次預測并保存輸出。

(6)使用判別器的預測訓練生成器。注意,我們使用全為1的 _real_labels_ 作為目標,因為我們的生成器的目標是創(chuàng)建看起來真實的圖像并且預測為1!因此,生成器的損失為0將意味著判別器預測全1.

瞧,這就是我們訓練GAN生成MNIST圖像的全部代碼!只需要安裝PyTorch即可運行。下面的gif就是經(jīng)過超過40個訓練周期生成的圖像。

d8e2dd60-da6f-11ec-ba43-dac502259ad0.gif

d94503b4-da6f-11ec-ba43-dac502259ad0.png

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4838

    瀏覽量

    107889
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1096

    瀏覽量

    42347
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    322

    瀏覽量

    22727

原文標題:你真的了解深度學習生成對抗網(wǎng)絡(luò)(GAN)嗎?

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    神經(jīng)網(wǎng)絡(luò)的初步認識

    日常生活中的智能應(yīng)用都離不開深度學習,而深度學習則依賴于神經(jīng)網(wǎng)絡(luò)的實現(xiàn)。什么是神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)的核心思想是模仿生物神經(jīng)系統(tǒng)的結(jié)構(gòu),特別是大
    的頭像 發(fā)表于 12-17 15:05 ?343次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的初步認識

    自動駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個啥?

    在自動駕駛領(lǐng)域,經(jīng)常會聽到卷積神經(jīng)網(wǎng)絡(luò)技術(shù)。卷積神經(jīng)網(wǎng)絡(luò),簡稱為CNN,是一種專門用來處理網(wǎng)格狀數(shù)據(jù)(比如圖像)的深度學習模型。CNN在圖像處理中尤其常見,因為圖像本身
    的頭像 發(fā)表于 11-19 18:15 ?2097次閱讀
    自動駕駛中常提的卷積<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>是個啥?

    NMSIS神經(jīng)網(wǎng)絡(luò)庫使用介紹

    :   神經(jīng)網(wǎng)絡(luò)卷積函數(shù)   神經(jīng)網(wǎng)絡(luò)激活函數(shù)   全連接層函數(shù)   神經(jīng)網(wǎng)絡(luò)池化函數(shù)   Softmax 函數(shù)   神經(jīng)網(wǎng)絡(luò)支持功能   該庫具有用于操作不同權(quán)重和激活
    發(fā)表于 10-29 06:08

    構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議

    通過實踐,本文總結(jié)了構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議,這些建議將會在構(gòu)建高準確率輕量級CNN神經(jīng)網(wǎng)絡(luò)模型方面提供幫助。 1)避免單層神經(jīng)網(wǎng)絡(luò):我們清楚神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 10-28 08:02

    如何通過地址生成器實現(xiàn)神經(jīng)網(wǎng)絡(luò)特征圖的padding?

    對于SiamFC網(wǎng)絡(luò)結(jié)構(gòu),我們設(shè)計的卷積核寬度為3*3,卷積步長為1,則經(jīng)卷積過后,特征圖寬度會減少2,為了滿足我們所設(shè)計的pe陣列的計算要求,則需要對輸出特征圖外圍進行補零處理,以擴充特征圖的大小
    發(fā)表于 10-22 08:15

    在Ubuntu20.04系統(tǒng)中訓練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗

    模型。 我們使用MNIST數(shù)據(jù)集,訓練一個卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型,用于手寫數(shù)字識別。一旦模型被訓練并保存,就可以用于對新圖像進行推理和預測。要使用生成的模型進行推理,
    發(fā)表于 10-22 07:03

    CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作

    在完成神經(jīng)網(wǎng)絡(luò)量化后,需要將神經(jīng)網(wǎng)絡(luò)部署到硬件加速器上。首先需要將所有權(quán)重數(shù)據(jù)以及輸入數(shù)據(jù)導入到存儲器內(nèi)。 在仿真環(huán)境下,可將其存于一個文件,并在 Verilog 代碼中通過 read
    發(fā)表于 10-20 08:00

    液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時間連續(xù)性與動態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)

    1.算法簡介液態(tài)神經(jīng)網(wǎng)絡(luò)(LiquidNeuralNetworks,LNN)是一種新型的神經(jīng)網(wǎng)絡(luò)架構(gòu),其設(shè)計理念借鑒自生物神經(jīng)系統(tǒng),特別是秀麗隱桿線蟲的神經(jīng)
    的頭像 發(fā)表于 09-28 10:03 ?1265次閱讀
    液態(tài)<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>(LNN):時間連續(xù)性與動態(tài)適應(yīng)性的<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>

    神經(jīng)網(wǎng)絡(luò)的并行計算與加速技術(shù)

    問題。因此,并行計算與加速技術(shù)在神經(jīng)網(wǎng)絡(luò)研究和應(yīng)用中變得至關(guān)重要,它們能夠顯著提升神經(jīng)網(wǎng)絡(luò)的性能和效率,滿足實際應(yīng)用中對快速響應(yīng)和大規(guī)模數(shù)據(jù)處理的需求。神經(jīng)網(wǎng)絡(luò)并行
    的頭像 發(fā)表于 09-17 13:31 ?1155次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的并行計算與加速技術(shù)

    基于神經(jīng)網(wǎng)絡(luò)的數(shù)字預失真模型解決方案

    在基于神經(jīng)網(wǎng)絡(luò)的數(shù)字預失真(DPD)模型中,使用不同的激活函數(shù)對整個系統(tǒng)性能和能效有何影響?
    的頭像 發(fā)表于 08-29 14:01 ?3492次閱讀

    無刷電機小波神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)子位置檢測方法的研究

    摘要:論文通過對無刷電機數(shù)學模型的推導,得出轉(zhuǎn)角:與三相相電壓之間存在映射關(guān)系,因此構(gòu)建了一個以三相相電壓為輸人,轉(zhuǎn)角為輸出的小波神經(jīng)網(wǎng)絡(luò)來實現(xiàn)轉(zhuǎn)角預測,并采用改進遺傳算法來訓練網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù),借助
    發(fā)表于 06-25 13:06

    神經(jīng)網(wǎng)絡(luò)專家系統(tǒng)在電機故障診斷中的應(yīng)用

    摘要:針對傳統(tǒng)專家系統(tǒng)不能進行自學習、自適應(yīng)的問題,本文提出了基于種經(jīng)網(wǎng)絡(luò)專家系統(tǒng)的并步電機故障診斷方法。本文將小波神經(jīng)網(wǎng)絡(luò)和專家系統(tǒng)相結(jié)合,充分發(fā)揮了二者故障診斷的優(yōu)點,很大程度上降低了對電機
    發(fā)表于 06-16 22:09

    神經(jīng)網(wǎng)絡(luò)RAS在異步電機轉(zhuǎn)速估計中的仿真研究

    眾多方法中,由于其結(jié)構(gòu)簡單,穩(wěn)定性好廣泛受到人們的重視,且已被用于產(chǎn)品開發(fā)。但是MRAS仍存在在低速區(qū)速度估計精度下降和對電動機參數(shù)變化非常敏感的問題。本文利用神經(jīng)網(wǎng)絡(luò)的特點,使估計更為簡單、快速
    發(fā)表于 06-16 21:54

    基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析

    本文的目的是在一個神經(jīng)網(wǎng)絡(luò)已經(jīng)通過python或者MATLAB訓練好的神經(jīng)網(wǎng)絡(luò)模型,將訓練好的模型的權(quán)重和偏置文件以TXT文件格式導出,然后通過python程序?qū)xt文件轉(zhuǎn)化為coe文件,(coe
    的頭像 發(fā)表于 06-03 15:51 ?1290次閱讀
    基于FPGA搭建<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的步驟解析

    NVIDIA實現(xiàn)神經(jīng)網(wǎng)絡(luò)渲染技術(shù)的突破性增強功能

    近日,NVIDIA 宣布了 NVIDIA RTX 神經(jīng)網(wǎng)絡(luò)渲染技術(shù)的突破性增強功能。NVIDIA 與微軟合作,將在 4 月的 Microsoft DirectX 預覽版中增加神經(jīng)網(wǎng)絡(luò)著色技術(shù),讓開
    的頭像 發(fā)表于 04-07 11:33 ?1215次閱讀