pytorch從入門到實踐(第四章)

2021-10-02 03:48:13 字數 1617 閱讀 3911

4.1 nn.module

torch.nn的核心資料結構是module,它是乙個抽象的概念,既可以表示神經網路的某個層,也可以包含很多層的神經網路。

注:實際使用中,最常見的做法是繼承nn.module,撰寫自己的網路/層。

下面的示例**實現了乙個兩層的感知機函式。

注:需要把引數封裝成parameter.

module能夠自檢到自己的parameter,並將其作為學習引數。除了parameter, module包含子module,主module能夠遞迴查詢子module中的parameter.

注:構建某乙個類時,可以包含已經建立的類。

import torch as t

from torch import nn

from torch.autograd import variable as v

class

linear

(nn.module)

:def

__init__

(self,in_features,out_features)

:super

(linear,self)

.__init__(

) self.w = nn.parameter(t.randn(in_features,out_features)

) self.b = nn.parameter(t.randn(out_features)

)def

forward

(self,x)

: x = x.mm(self.w)

return x + self.b.expand_as(x)

layer = linear(4,

3)input

= v(t.randn(2,

4))output = layer(

input

)output

for name,parameter in layer.named_parameters():

print

(name,parameter)

#構建感知機的時,直接使用了之前構建的類linear,這是構建網路很重要的方法

class

perception

(nn.module)

:def

__init__

(self,in_features,hiddern_features,out_features)

:super

(perception,self)

.__init__(

) self.layer1 = linear(in_features,hiddern_features)

self.layer2 = linear(hiddern_features,out_features)

defforward

(self,x)

: x = self.layer1(x)

x = x.sigmoid(x)

return self.layer2(x)

perception = perception(4,

3,1)

python程式設計 從入門到實踐 第四章

for val in range 20 range預設以0開始,n 1結束 print val,end print for val in range 1 20,3 指定range單步步長 print val end print range 建立 數字列表 print range 建立 列表 lisn...

Python程式設計從入門到實踐第四章

一 列表 1.列表切片 names zhangsan lisi wangwu zhaoqian sunli print names 0 3 包含前三個名字 print names 1,4 包含2 4號元素 print names 2 包含3 最後的元素 print names 3 包含前四個元素 p...

PyTorch從入門到出門

1.pytorch簡介 為什麼選擇pytorch以及安裝過程 2.1 pytorch神經網路基礎 torch對比numpy 2.2 pytorch神經網路基礎 torch中的變數variable 2.3 pytorch神經網路基礎 激勵函式 activation function 3.1 pytor...