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...