国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)

瀏覽:2日期:2022-07-13 10:55:53

1 任務(wù)

首先說(shuō)下我們要搭建的網(wǎng)絡(luò)要完成的學(xué)習(xí)任務(wù): 讓我們的神經(jīng)網(wǎng)絡(luò)學(xué)會(huì)邏輯異或運(yùn)算,異或運(yùn)算也就是俗稱(chēng)的“相同取0,不同取1” 。再把我們的需求說(shuō)的簡(jiǎn)單一點(diǎn),也就是我們需要搭建這樣一個(gè)神經(jīng)網(wǎng)絡(luò),讓我們?cè)谳斎耄?,1)時(shí)輸出0,輸入(1,0)時(shí)輸出1(相同取0,不同取1),以此類(lèi)推。

2 實(shí)現(xiàn)思路

因?yàn)槲覀兊男枨笮枰袃蓚€(gè)輸入,一個(gè)輸出,所以我們需要在輸入層設(shè)置兩個(gè)輸入節(jié)點(diǎn),輸出層設(shè)置一個(gè)輸出節(jié)點(diǎn)。因?yàn)閱?wèn)題比較簡(jiǎn)單,所以隱含層我們只需要設(shè)置10個(gè)節(jié)點(diǎn)就可以達(dá)到不錯(cuò)的效果了,隱含層的激活函數(shù)我們采用ReLU函數(shù),輸出層我們用Sigmoid函數(shù),讓輸出保持在0到1的一個(gè)范圍,如果輸出大于0.5,即可讓輸出結(jié)果為1,小于0.5,讓輸出結(jié)果為0.

3 實(shí)現(xiàn)過(guò)程

我們使用的簡(jiǎn)單的快速搭建法。

3.1 引入必要庫(kù)

import torchimport torch.nn as nnimport numpy as np

用pytorch當(dāng)然要引入torch包,然后為了寫(xiě)代碼方便將torch包里的nn用nn來(lái)代替,nn這個(gè)包就是neural network的縮寫(xiě),專(zhuān)門(mén)用來(lái)搭神經(jīng)網(wǎng)絡(luò)的一個(gè)包。引入numpy是為了創(chuàng)建矩陣作為輸入。

3.2 創(chuàng)建訓(xùn)練集

# 構(gòu)建輸入集x = np.mat(’0 0;’ ’0 1;’ ’1 0;’ ’1 1’)x = torch.tensor(x).float()y = np.mat(’1;’ ’0;’ ’0;’ ’1’)y = torch.tensor(y).float()

我個(gè)人比較喜歡用np.mat這種方式構(gòu)建矩陣,感覺(jué)寫(xiě)法比較簡(jiǎn)單,當(dāng)然你也可以用其他的方法。但是構(gòu)建完矩陣一定要有這一步 torch.tensor(x).float() ,必須要把你所創(chuàng)建的輸入轉(zhuǎn)換成tensor變量。

什么是tensor呢?你可以簡(jiǎn)單地理解他就是pytorch中用的一種變量,你想用pytorch這個(gè)框架就必須先把你的變量轉(zhuǎn)換成tensor變量。而我們這個(gè)神經(jīng)網(wǎng)絡(luò)會(huì)要求你的輸入和輸出必須是float浮點(diǎn)型的,指的是tensor變量中的浮點(diǎn)型,而你用np.mat創(chuàng)建的輸入是int型的,轉(zhuǎn)換成tensor也會(huì)自動(dòng)地轉(zhuǎn)換成tensor的int型,所以要在后面加個(gè).float()轉(zhuǎn)換成浮點(diǎn)型。

這樣我們就構(gòu)建完成了輸入和輸出(分別是x矩陣和y矩陣),x是四行二列的一個(gè)矩陣,他的每一行是一個(gè)輸入,一次輸入兩個(gè)值,這里我們把所有的輸入情況都列了出來(lái)。輸出y是一個(gè)四行一列的矩陣,每一行都是一個(gè)輸出,對(duì)應(yīng)x矩陣每一行的輸入。

3.3 搭建網(wǎng)絡(luò)

myNet = nn.Sequential( nn.Linear(2,10), nn.ReLU(), nn.Linear(10,1), nn.Sigmoid() )print(myNet)

輸出結(jié)果:

PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)

我們使用nn包中的Sequential搭建網(wǎng)絡(luò),這個(gè)函數(shù)就是那個(gè)可以讓我們像搭積木一樣搭神經(jīng)網(wǎng)絡(luò)的一個(gè)東西。

nn.Linear(2,10)的意思搭建輸入層,里面的2代表輸入節(jié)點(diǎn)個(gè)數(shù),10代表輸出節(jié)點(diǎn)個(gè)數(shù)。Linear也就是英文的線性,意思也就是這層不包括任何其它的激活函數(shù),你輸入了啥他就給你輸出了啥。nn.ReLU()這個(gè)就代表把一個(gè)激活函數(shù)層,把你剛才的輸入扔到了ReLU函數(shù)中去。 接著又來(lái)了一個(gè)Linear,最后再扔到Sigmoid函數(shù)中去。 2,10,1就分別代表了三個(gè)層的個(gè)數(shù),簡(jiǎn)單明了。

3.4 設(shè)置優(yōu)化器

optimzer = torch.optim.SGD(myNet.parameters(),lr=0.05)loss_func = nn.MSELoss()

對(duì)這一步的理解就是,你需要有一個(gè)優(yōu)化的方法來(lái)訓(xùn)練你的網(wǎng)絡(luò),所以這步設(shè)置了我們所要采用的優(yōu)化方法。

torch.optim.SGD的意思就是采用SGD(隨機(jī)梯度下降)方法訓(xùn)練,你只需要把你網(wǎng)絡(luò)的參數(shù)和學(xué)習(xí)率傳進(jìn)去就可以了,分別是 myNet.paramets 和 lr 。 loss_func 這句設(shè)置了代價(jià)函數(shù),因?yàn)槲覀兊倪@個(gè)問(wèn)題比較簡(jiǎn)單,所以采用了MSE,也就是均方誤差代價(jià)函數(shù)。

3.5 訓(xùn)練網(wǎng)絡(luò)

for epoch in range(5000): out = myNet(x) loss = loss_func(out,y) optimzer.zero_grad() loss.backward() optimzer.step()

我這里設(shè)置了一個(gè)5000次的循環(huán)(可能不需要這么多次),讓這個(gè)訓(xùn)練的動(dòng)作迭代5000次。每一次的輸出直接用myNet(x),把輸入扔進(jìn)你的網(wǎng)絡(luò)就得到了輸出out(就是這么簡(jiǎn)單粗暴?。?,然后用代價(jià)函數(shù)和你的標(biāo)準(zhǔn)輸出y求誤差。 清除梯度的那一步是為了每一次重新迭代時(shí)清除上一次所求出的梯度,你就把這一步記住就行,初學(xué)不用理解太深。 loss.backward() 當(dāng)然就是讓誤差反向傳播,接著 optimzer.step() 也就是讓我們剛剛設(shè)置的優(yōu)化器開(kāi)始工作。

3.6 測(cè)試

print(myNet(x).data)

運(yùn)行結(jié)果:

PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)

可以看到這個(gè)結(jié)果已經(jīng)非常接近我們期待的結(jié)果了,當(dāng)然你也可以換個(gè)數(shù)據(jù)測(cè)試,結(jié)果也會(huì)是相似的。這里簡(jiǎn)單解釋下為什么我們的代碼末尾加上了一個(gè).data,因?yàn)槲覀兊膖ensor變量其實(shí)是包含兩個(gè)部分的,一部分是tensor數(shù)據(jù),另一部分是tensor的自動(dòng)求導(dǎo)參數(shù),我們加上.data意思是輸出取tensor中的數(shù)據(jù),如果不加的話會(huì)輸出下面這樣:

PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)

以上就是PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)的詳細(xì)內(nèi)容,更多關(guān)于PyTorch搭建網(wǎng)絡(luò)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PyTorch
相關(guān)文章:
主站蜘蛛池模板: 久久国产中文字幕 | 中文字幕va一区二区三区 | 日本久久一区二区 | 67194在线午夜亚洲 | 国产视频三级 | 亚洲加勒比久久88色综合 | 日本成人在线视频网站 | 成人福利在线 | 国产欧美日韩综合精品一区二区三区 | 免费久久久久 | 亚洲欧美网址 | 国产中的精品一区的 | 国产精品免费大片一区二区 | 精品国产高清a毛片 | 色在线网站免费观看 | 一级片观看| 青木玲中文字幕一区二区 | 性强烈欧美一级毛片 | 久久综合88 | 国产精品成人免费观看 | 亚洲欧美一区二区久久 | 欧美激情 自拍 | 久草男人天堂 | 玖玖玖视频在线观看视频6 玖玖影院在线观看 | 日本色综合网 | 精品96在线观看影院 | 99久久精品免费看国产 | 成年人网站免费在线观看 | 日本s色大片在线观看 | 特黄a三级三级三级 | 久久99久久精品国产只有 | 亚洲欧美手机在线观看 | 在线中文字幕精品第5页 | 成年女人免费又黄又爽视频 | 久久99国产精品免费观看 | 国产在线观看午夜不卡 | 韩国免费毛片 | 在线免费看黄色 | 亚洲网站免费看 | 亚洲超大尺度激情啪啪人体 | 免费观看一级成人毛片 |