putorch 模型容器Containers

2021-09-29 02:43:41 字數 2585 閱讀 1072

import torch

import torchvision

import torch.nn as nn

from collections import ordereddict

# *************************=== sequential

class

lenetsequential

(nn.module)

:def

__init__

(self, classes)

:super

(lenetsequential, self)

.__init__(

) self.features = nn.sequential(

nn.conv2d(3,

6,5)

, nn.relu(),

nn.maxpool2d(kernel_size=

2, stride=2)

, nn.conv2d(6,

16,5)

, nn.relu(),

nn.maxpool2d(kernel_size=

2, stride=2)

,)self.classifier = nn.sequential(

nn.linear(16*

5*5,

120)

, nn.relu(),

nn.linear(

120,84)

, nn.relu(),

nn.linear(

84, classes),)

defforward

(self, x)

: x = self.features(x)

#nn.sequential(nn.conv(),nn.linear,nn.relu())(x)==>順序迭代其中的模型,x=模型1(x),x=模型2(x)。。。

x = x.view(x.size()[

0],-

1)x = self.classifier(x)

return x

class

lenetsequentialorderdict

(nn.module)

:def

__init__

(self, classes)

:super

(lenetsequentialorderdict, self)

.__init__(

) self.features = nn.sequential(ordereddict())

self.classifier = nn.sequential(ordereddict())

defforward

(self, x)

: x = self.features(x)

x = x.view(x.size()[

0],-

1)x = self.classifier(x)

return x

#net = lenetsequential(classes=2)

net = lenetsequentialorderdict(classes=2)

#fake_img = torch.randn((4

,3,32

,32), dtype=torch.float32)

#output = net(fake_img)

#print

(net)

print

(output)

nn.modulelist是nn.module的容器,用於包裝一組網路層,以迭代的方式呼叫網路層,主要方法是:

entend():拼接兩個modulelist

insert()指定在modulelist位置中插入網路層

class

modulelist

(nn.module)

:def

__init__

(self)

:super

(modulelist, self)

.__init__(

) self.linears = nn.modulelist(

[nn.linear(10,

10)for i in

range(20

)])#迴圈建立20個線性模型,輸入10維輸出10維

defforward

(self, x)

:for i, linear in

enumerate

(self.linears)

: x = linear(x)

return x

net = modulelist(

)print

(net)

fake_data = torch.ones((10

,10))

output = net(fake_data)

print

(output)

Linux 裝置模型(中)之上層容器

基本概念 匯流排 linux裝置模型是由匯流排 bus type 裝置 device 驅動 device driver 這三個資料結構來描述的。匯流排是處理器和乙個或多個裝置之間的通道。匯流排可以相互插入。裝置模型展示了匯流排和它們所控制的裝置之間的實際連線。bus type 匯流排 linux 裝...

Linux裝置模型(中)之上層容器

linux裝置模型是由匯流排 bus type 裝置 device 驅動 device driver 這三個資料結構來描述的。在裝置模型中,所有的裝置都通過匯流排來連線。即使有些裝置沒有連線到一根物理上的匯流排,linux為其設定了乙個內部的,虛擬的platform匯流排,來維持匯流排,驅動,裝置的...

框架式電容器GIM模型

三維模型需滿足qgdw 11809 2018 輸變電工程三維設計模型互動規範 qgdw 11810.1 2018 輸變電工程三維設計建模規範.第1部分 變電站 換流站 三維模型移交深度的相關要求,三維模型應按比例 1 1 建模,電氣裝置模型格式採用 gim。三維模型需滿足以下要求 1 電容器本體可採...