2019-08-29pytorch學習(二)網(wǎng)絡

小白的自我救贖

Neural networks can be constructed using the torch.nn package
An nn.Module contains layers, and a method forward(input)that returns the output即兩部分組成:構建網(wǎng)絡層猾编,已經(jīng)輸入接口forward函數(shù)蒸其,用于前向傳播
Define a network:

import torch
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):#pythorch固有形式
      def __init__(self):#__init__方法的第一個參數(shù)永遠是self桃移,表示創(chuàng)建的實例本身茅主。因此,在__init__方法內(nèi)部祟剔,就可以把各種屬性綁定到self映挂,因為self就指向創(chuàng)建的實例本身鞭莽。
      super(Net, self).__init__()
  # 1 input image channel, 6 output channels, 3x3 square convolution
        # kernel
      self.conv1 = nn.Conv2d(1, 6, 3)
      self.conv2 = nn.Conv2d(6, 16, 3)
 # an affine operation: y = Wx + b
      self.fc1 = nn.Linear(16 * 6 * 6, 120)  # 6*6 from image dimension
      self.fc2 = nn.Linear(120, 84)
      self.fc3 = nn.Linear(84, 10)#以上代碼即為構建網(wǎng)絡層部分
#**注意:參數(shù)只涉及到網(wǎng)絡中卷積核數(shù)目、大小等參數(shù)唐断,不涉及輸入圖像大小
#以下代碼為forward函數(shù)选脊、前向傳播部分
      def forward(self, x):
    # Max pooling over a (2, 2) window
      x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
        # If the size is a square you can only specify a single number
      x = F.max_pool2d(F.relu(self.conv2(x)), 2)
      x = x.view(-1, self.num_flat_features(x))#拉成向量
      x = F.relu(self.fc1(x))
      x = F.relu(self.fc2(x))
      x = self.fc3(x)
      return x
  def num_flat_features(self, x):#定義子函數(shù)計算batch維度之外的向量參數(shù)個數(shù)
        size = x.size()[1:]  # all dimensions except the batch dimension
        num_features = 1
        for s in size:
            num_features *= s
        return num_features
net = Net()
print(net)

Out:
Net(
(conv1): Conv2d(1, 6, kernel_size=(3, 3), stride=(1, 1))
(conv2): Conv2d(6, 16, kernel_size=(3, 3), stride=(1, 1))
(fc1): Linear(in_features=576, out_features=120, bias=True)
(fc2): Linear(in_features=120, out_features=84, bias=True)
(fc3): Linear(in_features=84, out_features=10, bias=True)
)

params = list(net.parameters())
print(len(params))
print(params[0].size())  # conv1's .weight

Out:
10
torch.Size([6, 1, 3, 3])
下一步為了防止每次反向傳播,梯度累加脸甘,需要梯度初始化為0

net.zero_grad()#所有參數(shù)梯度清零
out.backward(torch.randn(1, 10))#反向傳播的過程只需要調(diào)用loss.backgrad()函數(shù)即可

注意:
torch.nn only supports mini-batches. The entire torch.nn package only supports inputs that are a mini-batch of samples, and not a single sample.即不支持單張圖像輸入訓練
例如,nn.Conv2d只接受4維的張量:
[nSamples ,nChannels, Height ,Width]
如果只有單個樣本,那么使用input.unsqueeze(0)來增加假的batch維度.

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恳啥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子丹诀,更是在濱河造成了極大的恐慌钝的,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铆遭,死亡現(xiàn)場離奇詭異硝桩,居然都是意外死亡,警方通過查閱死者的電腦和手機枚荣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門碗脊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人橄妆,你說我怎么就攤上這事衙伶∑碜梗” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵矢劲,是天一觀的道長赦拘。 經(jīng)常有香客問我,道長芬沉,這世上最難降的妖魔是什么躺同? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮花嘶,結果婚禮上笋籽,老公的妹妹穿的比我還像新娘蹦漠。我一直安慰自己椭员,他們只是感情好,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布笛园。 她就那樣靜靜地躺著隘击,像睡著了一般。 火紅的嫁衣襯著肌膚如雪研铆。 梳的紋絲不亂的頭發(fā)上埋同,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機與錄音棵红,去河邊找鬼凶赁。 笑死,一個胖子當著我的面吹牛逆甜,可吹牛的內(nèi)容都是我干的虱肄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼交煞,長吁一口氣:“原來是場噩夢啊……” “哼咏窿!你這毒婦竟也來了?” 一聲冷哼從身側響起素征,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤集嵌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后御毅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體根欧,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年端蛆,在試婚紗的時候發(fā)現(xiàn)自己被綠了凤粗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡欺税,死狀恐怖侈沪,靈堂內(nèi)的尸體忽然破棺而出揭璃,到底是詐尸還是另有隱情,我是刑警寧澤亭罪,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布瘦馍,位于F島的核電站,受9級特大地震影響应役,放射性物質發(fā)生泄漏情组。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一箩祥、第九天 我趴在偏房一處隱蔽的房頂上張望院崇。 院中可真熱鬧,春花似錦袍祖、人聲如沸底瓣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捐凭。三九已至,卻和暖如春凳鬓,著一層夾襖步出監(jiān)牢的瞬間茁肠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工缩举, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垦梆,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓仅孩,卻偏偏與公主長得像托猩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杠氢,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容