国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

GAN(生成對抗網(wǎng)絡(luò))

這篇具有很好參考價值的文章主要介紹了GAN(生成對抗網(wǎng)絡(luò))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

簡介:GAN生成對抗網(wǎng)絡(luò)本質(zhì)上是一種思想,其依靠神經(jīng)網(wǎng)絡(luò)能夠擬合任意函數(shù)的能力,設(shè)計了一種架構(gòu)來實現(xiàn)數(shù)據(jù)的生成。

原理:GAN的原理就是最小化生成器Generator的損失,但是在最小化損失的過程中加入了一個約束,這個約束就是使Generator生成的數(shù)據(jù)滿足我們指定數(shù)據(jù)的分布,GAN的巧妙之處在于使用一個神經(jīng)網(wǎng)絡(luò)(鑒別器Discriminator)來自動判斷生成的數(shù)據(jù)是否符合我們所需要的分布。

實現(xiàn)細(xì)節(jié):

一:

????????準(zhǔn)備好我們想要讓生成器生成的數(shù)據(jù)類型,比如MINIST手寫數(shù)字集,包含1-10十個數(shù)字,一共60000張圖片。生成器的目的就是學(xué)習(xí)這個數(shù)據(jù)集的分布。

二,

????????定義一個生成器,用于判別一張圖片是實際的還是生成器生成的,當(dāng)生成器完美學(xué)習(xí)得到數(shù)據(jù)分布之后,鑒別器可能就分不清圖片是生成器的還是實際的,這樣的話生成器就能生成我們想要的圖片了。

????????生成器的訓(xùn)練過程為:實際數(shù)據(jù)輸出結(jié)果1,生成數(shù)據(jù)輸出結(jié)果為0,目的是學(xué)會區(qū)分真假數(shù)據(jù),相當(dāng)于提供一個約束,使生成數(shù)據(jù)符合指定分布。當(dāng)鑒別生成器的數(shù)據(jù)分布時,只需要更新鑒別器的參數(shù)權(quán)重,不能夠通過計算圖將生成器的參數(shù)進(jìn)行更新。

三,

????????定義一個生成器,給定一個輸入,他就能生成1-10里面的一個數(shù)字的圖片。生成器的反向更新是根據(jù)鑒別器的損失來確定(被約束進(jìn)行反向更新)。生成器的網(wǎng)絡(luò)權(quán)重參數(shù)是單獨(dú)的,反向更新時,只需要更新計算圖當(dāng)中屬于生成器部分的參數(shù)。

下面給出生成1-0-1-0數(shù)據(jù)格式的代碼:

# %%
import torch
import numpy
import torch.nn as nn
import matplotlib.pyplot as plt

# %%
def gennerate1010():
    return torch.FloatTensor([numpy.random.uniform(0.9,1.1),
                              numpy.random.uniform(0.,.1),
                              numpy.random.uniform(0.9,1.1),
                              numpy.random.uniform(0.0,.1)])

# %%
def genneratexxxx():
    return torch.rand(4)

# %%
class Discrimer(nn.Module):
    def __init__(self) -> None:
        father_obj = super(Discrimer,self)
        father_obj.__init__()
        self.create_model()
        self.counter = 0
        self.progress = []
        
    def create_model(self):
        self.model = nn.Sequential(
            nn.Linear(4,3),
            nn.Sigmoid(),
            nn.Linear(3,1),
            nn.Sigmoid(),           
        )
        self.loss_functon = nn.MSELoss()
        self.optimiser = torch.optim.SGD(self.parameters(),lr=0.01)
        
    def forward(self,x):
        return self.model(x)
    
    def train(self,x,targets):
        outputs = self.forward(x)
        loss = self.loss_functon(outputs,targets)
        self.counter += 1
        if self.counter%10 == 0:
            self.progress.append(loss.item())
        if self.counter%10000 == 0:
            print(self.counter)
            
            
        self.optimiser.zero_grad()
        loss.backward()
        self.optimiser.step()
        
    def plotprogress(self):
        plt.plot(self.progress,marker='*')
        plt.show()

        

# %%
class Gennerater(nn.Module):
    def __init__(self) -> None:
        father_obj = super(Gennerater,self)
        father_obj.__init__()
        self.create_model()
        self.counter = 0
        self.progress = []

        
    def create_model(self):
        self.model = nn.Sequential(
            nn.Linear(1,3),
            nn.Sigmoid(),
            nn.Linear(3,4),
            nn.Sigmoid(),           
        )
        # 這個優(yōu)化器只能優(yōu)化生成器部分的參數(shù)
        self.optimiser = torch.optim.SGD(self.parameters(),lr=0.01)
        
    def forward(self,x):
        return self.model(x)
    
    def train(self,D,x,targets):
        g_outputs = self.forward(x)
        d_outputs = D.forward(g_outputs)
        # 使用鑒別器的loss函數(shù),但是只更新生成器的參數(shù),生成器的參數(shù)需要根據(jù)鑒別器的約束進(jìn)行更新
        loss = D.loss_functon(d_outputs,targets)
        self.counter += 1
        if self.counter%10 == 0:
            self.progress.append(loss.item())
        if self.counter%10000 == 0:
            print(self.counter)
            
            
        self.optimiser.zero_grad()
        loss.backward()
        self.optimiser.step()
        
    def plotprogress(self):
        plt.plot(self.progress,marker='*')
        plt.show()


# %%
D = Discrimer()

# %%
G = Gennerater()


# %%
for id in range(15000):
    # 喂入實際數(shù)據(jù)給鑒別器
    D.train(gennerate1010(),torch.FloatTensor([1.]))
    # 喂入生成的數(shù)據(jù),使用detach從計算圖脫離,用于更新鑒別器,而生成器得不到更新
    D.train(G.forward(torch.FloatTensor([0.5]).detach()),torch.FloatTensor([0.0]))
    G.train(D,torch.FloatTensor([0.5]),torch.FloatTensor([1.]))
    

# %%
D.plotprogress()

# %%
G.plotprogress()

# %%
G.forward(torch.FloatTensor([0.5]))


參考:PyTorch生成對抗網(wǎng)絡(luò)編程文章來源地址http://www.zghlxwxcb.cn/news/detail-667857.html

到了這里,關(guān)于GAN(生成對抗網(wǎng)絡(luò))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 畢業(yè)設(shè)計:基于卷積神經(jīng)網(wǎng)絡(luò)的古詩詞生成系統(tǒng) 人工智能

    畢業(yè)設(shè)計:基于卷積神經(jīng)網(wǎng)絡(luò)的古詩詞生成系統(tǒng) 人工智能

    目錄 ?前言 設(shè)計思路 ? ? ??一、課題背景與意義 ? ? ??二、算法理論原理 ? ? ? ? ? ? ? ?2.1 深度學(xué)習(xí) ? ? ? ? ? ? ? ?2.2 神經(jīng)網(wǎng)絡(luò) ? ? ??三、檢測的實現(xiàn) ? ? ? ? ? ? ? ?3.1 數(shù)據(jù)集 ? ? ? ? ? ? ? ?3.2 實驗環(huán)境搭建 ? ? ? ? ? ? ? ?3.3 模型訓(xùn)練 最后 ? ? ? ???大

    2024年04月12日
    瀏覽(65)
  • Python用GAN生成對抗性神經(jīng)網(wǎng)絡(luò)判別模型擬合多維數(shù)組、分類識別手寫數(shù)字圖像可視化...

    Python用GAN生成對抗性神經(jīng)網(wǎng)絡(luò)判別模型擬合多維數(shù)組、分類識別手寫數(shù)字圖像可視化...

    生成對抗網(wǎng)絡(luò)(GAN)是一種神經(jīng)網(wǎng)絡(luò),可以生成類似于人類產(chǎn)生的材料,如圖像、音樂、語音或文本 ( 點(diǎn)擊文末“閱讀原文”獲取完整 代碼數(shù)據(jù) )。 相關(guān)視頻 最近我們被客戶要求撰寫關(guān)于GAN生成對抗性神經(jīng)網(wǎng)絡(luò)的研究報告,包括一些圖形和統(tǒng)計輸出。 近年來,GAN一直是研

    2024年02月09日
    瀏覽(25)
  • 【ChatGPT】人工智能生成內(nèi)容的綜合調(diào)查(AIGC):從 GAN 到 ChatGPT 的生成人工智能歷史

    【ChatGPT】人工智能生成內(nèi)容的綜合調(diào)查(AIGC):從 GAN 到 ChatGPT 的生成人工智能歷史

    ? :AIGC,Artificial Intelligence Generated Content ? 【禪與計算機(jī)程序設(shè)計藝術(shù):導(dǎo)讀】 2022年,可以說是生成式AI的元年。近日,俞士綸團(tuán)隊發(fā)表了一篇關(guān)于AIGC全面調(diào)查,介紹了從GAN到ChatGPT的發(fā)展史。 論文地址: https://arxiv.org/pdf/2303.04226.pdf 剛剛過去的2022年,無疑是生成式

    2023年04月18日
    瀏覽(104)
  • 人工智能|深度學(xué)習(xí)——基于對抗網(wǎng)絡(luò)的室內(nèi)定位系統(tǒng)

    人工智能|深度學(xué)習(xí)——基于對抗網(wǎng)絡(luò)的室內(nèi)定位系統(tǒng)

    基于CSI的工業(yè)互聯(lián)網(wǎng)深度學(xué)習(xí)定位.zip資源-CSDN文庫 室內(nèi)定位技術(shù)是工業(yè)互聯(lián)網(wǎng)相關(guān)技術(shù)的關(guān)鍵一環(huán)。 該技術(shù)旨在解決于室外定位且取得良好效果的GPS由于建筑物阻擋無法應(yīng)用于室內(nèi)的問題 。實現(xiàn)室內(nèi)定位技術(shù),能夠在真實工業(yè)場景下實時追蹤和調(diào)配人員并做到對自動化生產(chǎn)

    2024年02月20日
    瀏覽(31)
  • 人工智能-神經(jīng)網(wǎng)絡(luò)

    人工智能-神經(jīng)網(wǎng)絡(luò)

    目錄 1 神經(jīng)元 2 MP模型 3 激活函數(shù) ? ? ? 3.1 激活函數(shù) ? ? ? 3.2 激活函數(shù)作用 ? ? ? 3.3?激活函數(shù)有多種 4、神經(jīng)網(wǎng)絡(luò)模型 5、神經(jīng)網(wǎng)絡(luò)應(yīng)用 6、存在的問題及解決方案 6.1 存在問題 6.2 解決方案-反向傳播 ? ? ? ?神經(jīng)元是主要由 樹突、軸突、突出 組成, 樹突 是從上面接收很

    2024年02月16日
    瀏覽(27)
  • 人工智能 -- 神經(jīng)網(wǎng)絡(luò)

    人工智能 -- 神經(jīng)網(wǎng)絡(luò)

    什么是人工智能?通俗來講,就是讓機(jī)器能像人一樣思考。這個無需解釋太多,因為通過各種科幻電影我們已經(jīng)對人工智能很熟悉了。大家現(xiàn)在感興趣的應(yīng)該是——如何實現(xiàn)人工智能? 從1956年夏季首次提出“人工智能”這一術(shù)語開始,科學(xué)家們嘗試了各種方法來實現(xiàn)它。這

    2024年02月05日
    瀏覽(26)
  • AI技術(shù)在網(wǎng)絡(luò)攻擊中的濫用與對抗 - 人工智能惡意攻擊

    隨著人工智能技術(shù)的迅猛發(fā)展,我們享受到了許多便利,但同時也面臨著新的安全威脅。本文將探討人工智能技術(shù)在網(wǎng)絡(luò)攻擊中的濫用,并提出一些防御機(jī)制。 人工智能技術(shù)的先進(jìn)性和靈活性使其成為惡意攻擊者的有力工具。以下是一些常見的人工智能濫用案例: 欺騙和釣

    2024年02月12日
    瀏覽(25)
  • 人工智能-卷積神經(jīng)網(wǎng)絡(luò)

    人工智能-卷積神經(jīng)網(wǎng)絡(luò)

    ? ? ? ? 人和動物如何把看到的圖像轉(zhuǎn)化為大腦中的一個概念? ? ? ? ? 我們知道計算機(jī)是把圖轉(zhuǎn)換為一大堆數(shù)字,通過訓(xùn)練可以知道這堆數(shù)字代表什么含義。但通過前面學(xué)過神經(jīng)網(wǎng)絡(luò)模型和梯度下降法的方法訓(xùn)練費(fèi)時費(fèi)力,而且一旦圖片進(jìn)行改變?nèi)缈s放、旋轉(zhuǎn)或其他變換,

    2024年02月16日
    瀏覽(23)
  • 人工智能-線性神經(jīng)網(wǎng)絡(luò)

    線性神經(jīng)網(wǎng)絡(luò) 在介紹深度神經(jīng)網(wǎng)絡(luò)之前,我們需要了解神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基礎(chǔ)知識。 本章我們將介紹神經(jīng)網(wǎng)絡(luò)的整個訓(xùn)練過程, 包括:定義簡單的神經(jīng)網(wǎng)絡(luò)架構(gòu)、數(shù)據(jù)處理、指定損失函數(shù)和如何訓(xùn)練模型。 為了更容易學(xué)習(xí),我們將從經(jīng)典算法———— 線性 神經(jīng)網(wǎng)絡(luò)開始,介

    2024年02月06日
    瀏覽(19)
  • 【復(fù)習(xí)】人工智能 第 8 章 人工神經(jīng)網(wǎng)絡(luò)及其應(yīng)用

    【復(fù)習(xí)】人工智能 第 8 章 人工神經(jīng)網(wǎng)絡(luò)及其應(yīng)用

    因為計算牽扯到導(dǎo)數(shù),所以這章難的部分不會考太難。 人工神經(jīng)網(wǎng)絡(luò)是對人腦或生物神經(jīng)網(wǎng)絡(luò)若干基本特性的抽象和模擬。 深度學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)的發(fā)展。 人工智能曾經(jīng)歷過很長一段時間的停滯不前。 浩瀚的宇宙中,也許只有包含數(shù)千憶顆星球的銀河系的復(fù)雜性能夠與大腦相

    2024年01月19日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包