檢視模型各層引數(Pytorch

2021-10-08 19:24:53 字數 1742 閱讀 4820

這個實驗用到的資料集是mnist資料集,維度是1×28×28

import torch.nn as nn

class cnn(nn.module):

def __init__(self):

super(cnn, self).__init__()

# 卷積層

self.conv1 = nn.sequential(

in_channels= 1, # 的高度

out_channels= 16, # 輸出的高度:filter的個數

kernel_size =5, # filter的畫素點是5×5

stride = 1, # 每次掃瞄跳的範圍

padding = 2 # 補全邊緣畫素點

)# 卷積層

nn.relu(),

)# 線性層

self.out = nn.linear(32*7*7, 10)

# 展平操作

def forward(self, x):

print(x.size()) # 檢視模型的輸入,tensorboardx input_to_model

x = self.conv1(x)

print(x.size())

print(x.size())

# 展平操作, -1表示自適應

print(x.size())

output = self.out(x)

return output

cnn = cnn()

print(cnn)

cnn(

(conv1): sequential(

(0): conv2d(1, 16, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))

(1): relu()

(2): maxpool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=false)

) (conv2): sequential(

(0): conv2d(16, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))

(1): relu()

(2): maxpool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=false)

) (out): linear(in_features=1568, out_features=10, bias=true)

)

for name, parameter in cnn.named_parameters():

print(name, ':', parameter.size())

輸出:

conv1.0.weight : torch.size([16, 1, 5, 5])

conv1.0.bias : torch.size([16])

conv2.0.weight : torch.size([32, 16, 5, 5])

conv2.0.bias : torch.size([32])

out.weight : torch.size([10, 1568])

out.bias : torch.size([10])

pytorch 模型部分引數的載入

如果對預訓練模型的結構進行了一些改動,在訓練的開始前希望載入未改動部分的引數,如將resnet18的第一層卷積層conv1的輸入由3通道改為6通道的new conv1,將分類層fc的1000類輸出改為2類輸出的new fc,注意 要改一下名字與原來的不同。匯入模型 mynet resnet 然後就載...

pytorch 模型部分引數的載入

如果對預訓練模型的結構進行了一些改動,在訓練的開始前希望載入未改動部分的引數,如將resnet18的第一層卷積層conv1的輸入由3通道改為6通道的new conv1,將分類層fc的1000類輸出改為2類輸出的new fc,注意 要改一下名字與原來的不同。匯入模型 mynet resnet18 然後...

額外引數 Pytorch獲取模型引數情況的方法

分享人工智慧技術乾貨,專注深度學習與計算機視覺領域!相較於tensorflow,pytorch一開始就是以動態圖構建神經網路圖的,其獲取模型引數的方法也比較容易,既可以根據其內建介面自己寫 獲取模型引數情況,也可以借助第三方庫來獲取模型引數情況,下面,就讓我們一起來了解pytorch獲取模型引數情況...