婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Pytorch學習筆記DCGAN極簡入門教程

Pytorch學習筆記DCGAN極簡入門教程

熱門標簽:佛山防封外呼系統收費 哈爾濱外呼系統代理商 鄭州智能外呼系統運營商 電話機器人適用業務 徐州天音防封電銷卡 不錯的400電話辦理 湛江電銷防封卡 獲客智能電銷機器人 南昌辦理400電話怎么安裝

1.圖片分類網絡

這是一個二分類網絡,可以是alxnet ,vgg,resnet任何一個,負責對圖片進行二分類,區分圖片是真實圖片還是生成的圖片

2.圖片生成網絡

輸入是一個隨機噪聲,輸出是一張圖片,使用的是反卷積層

相信學過深度學習的都能寫出這兩個網絡,當然如果你寫不出來,沒關系,有人替你寫好了

首先是圖片分類網絡:

簡單來說就是cnn+relu+sogmid,可以換成任何一個分類網絡,比如bgg,resnet等

class Discriminator(nn.Module):
    def __init__(self, ngpu):
        super(Discriminator, self).__init__()
        self.ngpu = ngpu
        self.main = nn.Sequential(
            # input is (nc) x 64 x 64
            nn.Conv2d(nc, ndf, 4, 2, 1, bias=False),
            nn.LeakyReLU(0.2, inplace=True),
            # state size. (ndf) x 32 x 32
            nn.Conv2d(ndf, ndf * 2, 4, 2, 1, bias=False),
            nn.BatchNorm2d(ndf * 2),
            nn.LeakyReLU(0.2, inplace=True),
            # state size. (ndf*2) x 16 x 16
            nn.Conv2d(ndf * 2, ndf * 4, 4, 2, 1, bias=False),
            nn.BatchNorm2d(ndf * 4),
            nn.LeakyReLU(0.2, inplace=True),
            # state size. (ndf*4) x 8 x 8
            nn.Conv2d(ndf * 4, ndf * 8, 4, 2, 1, bias=False),
            nn.BatchNorm2d(ndf * 8),
            nn.LeakyReLU(0.2, inplace=True),
            # state size. (ndf*8) x 4 x 4
            nn.Conv2d(ndf * 8, 1, 4, 1, 0, bias=False),
            nn.Sigmoid()
        )
    def forward(self, input):
        return self.main(input)

重點是生成網絡

代碼如下,其實就是反卷積+bn+relu

class Generator(nn.Module):
    def __init__(self, ngpu):
        super(Generator, self).__init__()
        self.ngpu = ngpu
        self.main = nn.Sequential(
            # input is Z, going into a convolution
            nn.ConvTranspose2d( nz, ngf * 8, 4, 1, 0, bias=False),
            nn.BatchNorm2d(ngf * 8),
            nn.ReLU(True),
            # state size. (ngf*8) x 4 x 4
            nn.ConvTranspose2d(ngf * 8, ngf * 4, 4, 2, 1, bias=False),
            nn.BatchNorm2d(ngf * 4),
            nn.ReLU(True),
            # state size. (ngf*4) x 8 x 8
            nn.ConvTranspose2d( ngf * 4, ngf * 2, 4, 2, 1, bias=False),
            nn.BatchNorm2d(ngf * 2),
            nn.ReLU(True),
            # state size. (ngf*2) x 16 x 16
            nn.ConvTranspose2d( ngf * 2, ngf, 4, 2, 1, bias=False),
            nn.BatchNorm2d(ngf),
            nn.ReLU(True),
            # state size. (ngf) x 32 x 32
            nn.ConvTranspose2d( ngf, nc, 4, 2, 1, bias=False),
            nn.Tanh()
            # state size. (nc) x 64 x 64
        )
    def forward(self, input):
        return self.main(input)


講道理,以上兩個網絡都挺簡單。

真正的重點到了,怎么訓練

每一個step分為三個步驟:

  • 訓練二分類網絡
    1.輸入真實圖片,經過二分類,希望判定為真實圖片,更新二分類網絡
    2.輸入噪聲,進過生成網絡,生成一張圖片,輸入二分類網絡,希望判定為虛假圖片,更新二分類網絡
  • 訓練生成網絡
    3.輸入噪聲,進過生成網絡,生成一張圖片,輸入二分類網絡,希望判定為真實圖片,更新生成網絡

不多說直接上代碼

for epoch in range(num_epochs):
    # For each batch in the dataloader
    for i, data in enumerate(dataloader, 0):
        ############################
        # (1) Update D network: maximize log(D(x)) + log(1 - D(G(z)))
        ###########################
        ## Train with all-real batch
        netD.zero_grad()
        # Format batch
        real_cpu = data[0].to(device)
        b_size = real_cpu.size(0)
        label = torch.full((b_size,), real_label, device=device)
        # Forward pass real batch through D
        output = netD(real_cpu).view(-1)
        # Calculate loss on all-real batch
        errD_real = criterion(output, label)
        # Calculate gradients for D in backward pass
        errD_real.backward()
        D_x = output.mean().item()
        ## Train with all-fake batch
        # Generate batch of latent vectors
        noise = torch.randn(b_size, nz, 1, 1, device=device)
        # Generate fake image batch with G
        fake = netG(noise)
        label.fill_(fake_label)
        # Classify all fake batch with D
        output = netD(fake.detach()).view(-1)
        # Calculate D's loss on the all-fake batch
        errD_fake = criterion(output, label)
        # Calculate the gradients for this batch
        errD_fake.backward()
        D_G_z1 = output.mean().item()
        # Add the gradients from the all-real and all-fake batches
        errD = errD_real + errD_fake
        # Update D
        optimizerD.step()
        ############################
        # (2) Update G network: maximize log(D(G(z)))
        ###########################
        netG.zero_grad()
        label.fill_(real_label)  # fake labels are real for generator cost
        # Since we just updated D, perform another forward pass of all-fake batch through D
        output = netD(fake).view(-1)
        # Calculate G's loss based on this output
        errG = criterion(output, label)
        # Calculate gradients for G
        errG.backward()
        D_G_z2 = output.mean().item()
        # Update G
        optimizerG.step()
        # Output training stats
        if i % 50 == 0:
            print('[%d/%d][%d/%d]\tLoss_D: %.4f\tLoss_G: %.4f\tD(x): %.4f\tD(G(z)): %.4f / %.4f'
                  % (epoch, num_epochs, i, len(dataloader),
                     errD.item(), errG.item(), D_x, D_G_z1, D_G_z2))
        # Save Losses for plotting later
        G_losses.append(errG.item())
        D_losses.append(errD.item())
        # Check how the generator is doing by saving G's output on fixed_noise
        if (iters % 500 == 0) or ((epoch == num_epochs-1) and (i == len(dataloader)-1)):
            with torch.no_grad():
                fake = netG(fixed_noise).detach().cpu()
            img_list.append(vutils.make_grid(fake, padding=2, normalize=True))
        iters += 1

以上就是Pytorch學習筆記DCGAN極簡入門教程的詳細內容,更多關于Pytorch學習DCGAN入門教程的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Pytorch使用MNIST數據集實現基礎GAN和DCGAN詳解
  • PyTorch安裝與基本使用詳解
  • 使用Pytorch搭建模型的步驟

標簽:蕪湖 紹興 廣西 呂梁 懷化 蘭州 吉安 安康

巨人網絡通訊聲明:本文標題《Pytorch學習筆記DCGAN極簡入門教程》,本文關鍵詞  Pytorch,學習,筆記,DCGAN,極簡,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Pytorch學習筆記DCGAN極簡入門教程》相關的同類信息!
  • 本頁收集關于Pytorch學習筆記DCGAN極簡入門教程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美激情一区二区三区| av电影天堂一区二区在线| 国产欧美日韩麻豆91| 在线观看区一区二| 国产精品99久久久| 日韩和欧美一区二区| 国产精品久久久久久久久晋中| 欧美三级韩国三级日本三斤 | 久久99久国产精品黄毛片色诱| 亚洲欧洲三级电影| 精品理论电影在线观看| 欧洲中文字幕精品| 不卡电影免费在线播放一区| 老司机免费视频一区二区三区| 亚洲男人的天堂av| 久久久久久麻豆| 欧美一区三区二区| 欧美性大战xxxxx久久久| 不卡大黄网站免费看| 国产在线精品一区二区夜色| 亚洲高清视频的网址| 国产精品国产三级国产aⅴ入口| 日韩三级.com| 色一区在线观看| 成人精品一区二区三区四区| 国产一区二区精品在线观看| 偷拍一区二区三区四区| 亚洲一本大道在线| 日韩一区日韩二区| 国产精品久久三区| 亚洲国产精品国自产拍av| 久久亚洲影视婷婷| 欧美变态tickling挠脚心| 欧美一区午夜精品| 91精品国产综合久久久久久漫画| 欧美在线免费观看视频| 91成人在线免费观看| 91视频com| 国产麻豆成人精品| 国产伦精一区二区三区| 蜜桃视频第一区免费观看| 亚洲一卡二卡三卡四卡无卡久久| 中文字幕日韩一区| 亚洲桃色在线一区| 亚洲精品免费在线观看| 亚洲制服丝袜在线| 日精品一区二区三区| 奇米四色…亚洲| 美国毛片一区二区| 精品一区二区三区视频在线观看| 久久99国产精品尤物| 国产老肥熟一区二区三区| 国产成人亚洲精品狼色在线| 成人av网在线| 欧美日韩在线亚洲一区蜜芽| 欧美二区在线观看| 欧美大肚乱孕交hd孕妇| 久久色.com| 国产精品女主播在线观看| 亚洲精品视频免费观看| 国产精品私人自拍| 欧美色图激情小说| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品久久久久久久浪潮网站| 偷拍日韩校园综合在线| 99在线视频精品| 久久先锋资源网| 午夜在线电影亚洲一区| 99久久国产免费看| 久久香蕉国产线看观看99| 日韩成人免费在线| 在线观看欧美精品| 国产精品久久久久久久久久免费看 | 99国产精品国产精品久久| 337p日本欧洲亚洲大胆色噜噜| 亚洲国产精品久久艾草纯爱| 99久久久精品| 欧美激情一区二区三区在线| 精品亚洲成av人在线观看| 欧美精品亚洲二区| 亚洲观看高清完整版在线观看| 99久久精品久久久久久清纯| 久久久久久毛片| 国产一区二区三区不卡在线观看 | 天堂成人免费av电影一区| 91久久人澡人人添人人爽欧美| 欧美激情资源网| 国产一区二区导航在线播放| 欧美精选一区二区| 亚洲午夜精品久久久久久久久| 色综合中文字幕国产 | 91网站在线播放| 国产精品网站一区| 国产91精品一区二区麻豆网站 | 日本一不卡视频| 欧美日韩视频在线第一区| 亚洲视频在线观看三级| 国产91精品一区二区| 国产亚洲1区2区3区| 国模一区二区三区白浆| 26uuu久久综合| 国产精品一区2区| 国产色综合久久| 成人污视频在线观看| 中文字幕精品一区二区精品绿巨人 | 男人的天堂久久精品| 欧美一区二区三区在线观看视频| 日韩精品免费视频人成| 6080yy午夜一二三区久久| 青椒成人免费视频| 欧美不卡一区二区三区四区| 精彩视频一区二区| 国产日韩一级二级三级| a在线欧美一区| 亚洲综合色区另类av| 欧美日韩一级黄| 美女脱光内衣内裤视频久久影院| 26uuu亚洲| jlzzjlzz亚洲日本少妇| 一区二区三区四区精品在线视频 | 国产精品久久国产精麻豆99网站| 99re热视频精品| 亚洲成人免费电影| 欧美电视剧在线看免费| 成人教育av在线| 夜夜亚洲天天久久| 日韩欧美中文字幕公布| 国产精品亚洲第一| 一区二区三区四区蜜桃 | 日韩avvvv在线播放| 久久综合九色综合97_久久久| 粉嫩欧美一区二区三区高清影视| 亚洲欧美偷拍三级| 欧美一区二区三级| 国产成人av一区二区三区在线观看| 亚洲欧洲日产国码二区| 884aa四虎影成人精品一区| 国产曰批免费观看久久久| 亚洲欧美激情插| 欧美大肚乱孕交hd孕妇| 91免费看视频| 久草热8精品视频在线观看| 国产精品人人做人人爽人人添| 欧美色图一区二区三区| 国模娜娜一区二区三区| 亚洲一区二区三区四区不卡| www激情久久| 欧美三级中文字| 国产98色在线|日韩| 欧美午夜不卡在线观看免费| 久久se精品一区二区| 亚洲人xxxx| 久久久久久久久久看片| 欧美视频你懂的| 丁香婷婷综合色啪| 日本aⅴ精品一区二区三区| 国产精品另类一区| 欧美一区二区三区人| 99久久婷婷国产综合精品电影 | 欧美性xxxxxxxx| 成人中文字幕电影| 蜜臀91精品一区二区三区| 亚洲日本在线a| 国产三级欧美三级| 制服视频三区第一页精品| 色噜噜久久综合| 国产成人精品一区二| 麻豆国产精品777777在线| 伊人性伊人情综合网| 国产精品午夜久久| 久久综合九色综合97婷婷| 欧美蜜桃一区二区三区| 北条麻妃一区二区三区| 国模大尺度一区二区三区| 男男视频亚洲欧美| 亚洲6080在线| 亚洲黄色免费电影| 国产精品国产三级国产有无不卡| 精品国产自在久精品国产| 欧美猛男男办公室激情| 欧美性生活大片视频| 色综合久久久久久久久| 成人免费视频视频| 国产91在线观看| 国产高清不卡一区二区| 韩国女主播成人在线观看| 免费成人在线播放| 婷婷开心激情综合| 视频一区视频二区中文| 亚洲国产欧美另类丝袜| 亚洲婷婷在线视频| 国产精品乱人伦中文| 欧美韩日一区二区三区| 久久久久久99久久久精品网站| 欧美大片在线观看| 精品国产乱码久久久久久1区2区 | 中文字幕一区二区三区不卡在线| 久久这里只有精品6| www欧美成人18+| 久久久久久久久久看片|