一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

用Pytorch構(gòu)建一個自動解碼器

 flyk0tcfb46p9f 2019-01-29

導(dǎo)語:'自編碼器是一種人工神經(jīng)網(wǎng)絡(luò),在無監(jiān)督學(xué)習(xí)中用于有效編碼。自編碼的目的是通過一組數(shù)據(jù)學(xué)習(xí)出一種特征(編碼),通常用于降維。'

本文為 AI 研習(xí)社編譯的技術(shù)博客,原標題 :

Building Autoencoder in Pytorch

作者 | Vipul Vaibhaw

翻譯 | 鄧普斯·杰弗、醬番梨、向日魁

校對 | 鄧普斯·杰弗 整理 | 菠蘿妹

https:///@vaibhaw.vipul/building-autoencoder-in-pytorch-34052d1d280c

這篇文章中,我們將利用 CIFAR-10 數(shù)據(jù)集通過 Pytorch 構(gòu)建一個簡單的卷積自編碼器。

引用維基百科的定義,'自編碼器是一種人工神經(jīng)網(wǎng)絡(luò),在無監(jiān)督學(xué)習(xí)中用于有效編碼。自編碼的目的是通過一組數(shù)據(jù)學(xué)習(xí)出一種特征(編碼),通常用于降維。'

為了建立一個自編碼器,我們需要三件事:一個編碼函數(shù),一個解碼函數(shù),和一個衡量壓縮特征和解壓縮特征間信息損失的距離函數(shù)(也稱為損失函數(shù))。

如果我們要在 Pytorch 中編寫自動編碼器,我們需要有一個自動編碼器類,并且必須使用super()從父類繼承__init__。

我們通過導(dǎo)入必要的 Pytorch 模塊開始編寫卷積自動編碼器。

import torchimport torchvision as tvimport torchvision.transforms as transformsimport torch.nn as nnimport torch.nn.functional as Ffrom torch.autograd import Variablefrom torchvision.utils import save_image

現(xiàn)在我們設(shè)置下載CIFAR-10數(shù)據(jù)集并將其轉(zhuǎn)換應(yīng)用于它。

我們對數(shù)據(jù)集應(yīng)用了兩個轉(zhuǎn)換 -

ToTensor() - 它將 PIL圖像或者 [0,255]范圍內(nèi)的 numpy.ndarray(H x W x C)轉(zhuǎn)換成 Torch 。 [0.0,1.0]范圍內(nèi)的形狀 FloatTensor。

Normalize() - 使用均值和標準差對張量圖像進行標準化。

基本上在應(yīng)用變換之后,我們得到(-2,2)范圍內(nèi)的值 。

# Loading and Transforming datatransform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.4914, 0.4822, 0.4466), (0.247, 0.243, 0.261))])trainTransform = tv.transforms.Compose([tv.transforms.ToTensor(), tv.transforms.Normalize((0.4914, 0.4822, 0.4466), (0.247, 0.243, 0.261))])trainset = tv.datasets.CIFAR10(root='./data', train=True,download=True, transform=transform)dataloader = torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=False, num_workers=4)testset = tv.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)

你可以在這里閱讀更多關(guān)于上述變換的內(nèi)容。 現(xiàn)在下一步是編寫自動編碼類。

# Writing our modelclass Autoencoder(nn.Module): def __init__(self): super(Autoencoder,self).__init__() self.encoder = nn.Sequential( nn.Conv2d(3, 6, kernel_size=5), nn.ReLU(True), nn.Conv2d(6,16,kernel_size=5), nn.ReLU(True)) self.decoder = nn.Sequential( nn.ConvTranspose2d(16,6,kernel_size=5), nn.ReLU(True), nn.ConvTranspose2d(6,3,kernel_size=5), nn.ReLU(True), nn.Sigmoid()) def forward(self,x): x = self.encoder(x) x = self.decoder(x) return x

卷積編碼器神經(jīng)網(wǎng)絡(luò)具有一些 Conv2d,并且我們有使用ReLU激活功能正在被使用。 現(xiàn)在我們定義一些參數(shù) -

#defining some paramsnum_epochs = 5 #you can go for more epochs, I am using a macbatch_size = 128

然后是時候設(shè)置訓(xùn)練模型了。我們調(diào)用模型并將其配置為在 cpu 上運行。如果你有一個 gpu,你可以使用 cuda。

我們使用 Mean Squared Error 作為損失函數(shù)。對于優(yōu)化器,我們使用 adam。

model = Autoencoder().cpu()distance = nn.MSELoss()optimizer = torch.optim.Adam(model.parameters(),weight_decay=1e-5)

讓咱們開始訓(xùn)練吧!

for epoch in range(num_epochs): for data in dataloader: img, _ = data img = Variable(img).cpu() # ===================forward===================== output = model(img) loss = distance(output, img) # ===================backward==================== optimizer.zero_grad() loss.backward() optimizer.step() # ===================log======================== print('epoch [{}/{}], loss:{:.4f}'.format(epoch+1, num_epochs, loss.data[0]))

這是我寫的一個簡單的博客,展示了如何在 Pytorch 中構(gòu)建自動編碼器。 但是,如果要在模型中包含 MaxPool2d(),請確保設(shè)置 return_indices = True,然后在解碼器中使用 MaxUnpool2d()圖層。

持續(xù)的學(xué)習(xí)和分享,可以在 github,Stack Overflow,LinkedIn,或者 Twitter 上 Follow 我。

想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻?

長按鏈接點擊打開或點擊底部【用Pytorch構(gòu)建一個自動解碼器】:

https://ai./page/TextTranslation/1284

AI研習(xí)社每日更新精彩內(nèi)容,觀看更多精彩內(nèi)容:雷鋒網(wǎng)雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))雷鋒網(wǎng)

命名實體識別(NER)綜述

杰出數(shù)據(jù)科學(xué)家的關(guān)鍵技能是什么?

初學(xué)者怎樣使用Keras進行遷移學(xué)習(xí)

如果你想學(xué)數(shù)據(jù)科學(xué),這 7 類資源千萬不能錯過

等你來譯:

深度學(xué)習(xí)目標檢測算法綜述

一文教你如何用PyTorch構(gòu)建 Faster RCNN

高級DQNs:利用深度強化學(xué)習(xí)玩吃豆人游戲

用于深度強化學(xué)習(xí)的結(jié)構(gòu)化控制網(wǎng)絡(luò) (ICML 論文講解)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩中文字幕欧美亚洲| 欧美日韩校园春色激情偷拍 | 青青操视频在线播放免费| 国产无摭挡又爽又色又刺激| 欧美精品激情视频一区| 久久综合日韩精品免费观看| 日韩欧美一区二区不卡看片| 免费午夜福利不卡片在线 视频 | 久热在线视频这里只有精品| 午夜视频免费观看成人| 少妇特黄av一区二区三区| 高清亚洲精品中文字幕乱码| 久久99热成人网不卡| 中字幕一区二区三区久久蜜桃 | 午夜视频在线观看日韩| 国产精品免费视频专区| 亚洲熟妇av一区二区三区色堂| 国产一区欧美午夜福利| 亚洲av专区在线观看| 精品一区二区三区中文字幕| 日韩高清中文字幕亚洲| 亚洲一区二区三区精选| 国产三级黄片在线免费看| 亚洲综合激情另类专区老铁性| 成人欧美精品一区二区三区| 好吊色免费在线观看视频| 国产又粗又猛又黄又爽视频免费| 亚洲第一香蕉视频在线| 激情少妇一区二区三区| 国产99久久精品果冻传媒| 人妻内射精品一区二区| 日本加勒比在线观看一区| 国产丝袜美女诱惑一区二区| 国产在线成人免费高清观看av| 欧美胖熟妇一区二区三区 | 国产女优视频一区二区| 麻豆精品在线一区二区三区| 男人大臿蕉香蕉大视频| 欧美精品日韩精品一区| 99久久国产亚洲综合精品| 小草少妇视频免费看视频|