Pytorch之如何提取模型中的某一層
Pytorch提取模型中的某一層
modules()會(huì)返回模型中所有模塊的迭代器,它能夠訪問到最內(nèi)層,比如self.layer1.conv1這個(gè)模塊,還有一個(gè)與它們相對(duì)應(yīng)的是name_children()屬性以及named_modules(),這兩個(gè)不僅會(huì)返回模塊的迭代器,還會(huì)返回網(wǎng)絡(luò)層的名字。
方法如下:
new_model = nn.Sequential(*list(model.children())[:2]
取模型中的前兩層
如果希望提取出模型中的所有卷積層,可以像下面這樣操作:
for layer in model.named_modules():
if isinstance(layer[1],nn.Conv2d):
conv_model.add_module(layer[0],layer[1])
#使用isinstance可以判斷這個(gè)模塊是不是所需要的類型實(shí)例Pytorch查看模型某一層的參數(shù)數(shù)值
import os
import torch
import torch.nn as nn
# 設(shè)置GPU
os.environ['CUDA_VISIBLE_DEVICES'] = '1'
device = torch.device('cuda:0') if torch.cuda.is_available() else 'cpu'
# 創(chuàng)建模型
model = nn.Sequential(nn.Conv2d(3, 16, kernel_size=1),
nn.Conv2d(16, 3, kernel_size=1))
model.to(device)
# 方法一
# 打印某一層的參數(shù)名
for name in model.state_dict():
print(name)
# 直接索引某一層的name來輸出該層的參數(shù)
print(model.state_dict()['1.weight'])
# 方法二
# 獲取模型所有參數(shù)名和參數(shù)值 存儲(chǔ)在list中
params = list(model.named_parameters())
# 分別索引得到某層的名稱和參數(shù)值
print(params[2][0]) # name
print(params[2][1].data) # data
# 方法三
# 依次遍歷模型每一層的參數(shù) 存儲(chǔ)到dict中
params = {}
for name, param in model.named_parameters():
params[name] = param.detach().cpu().numpy()
print(params['0.weight'])
# 方法四
# 遍歷模型的每一層 查找目標(biāo)層 輸出參數(shù)值
for layer in model.modules():
# 打印Conv2d層的參數(shù)
if (isinstance(layer, nn.Conv2d)):
print(layer.weight)總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python梯度提升庫XGBoost解決機(jī)器學(xué)習(xí)問題使用探究
XGBoost是一個(gè)流行的梯度提升庫,特別適用于解決各種機(jī)器學(xué)習(xí)問題,它在性能和速度上表現(xiàn)出色,常被用于分類、回歸、排序、推薦系統(tǒng)等應(yīng)用,本文將介紹XGBoost的基本原理、核心功能以及一些詳細(xì)的示例代碼2024-01-01
Python3中urlencode和urldecode的用法詳解
今天小編就為大家分享一篇Python3中urlencode和urldecode的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
python實(shí)現(xiàn)處理Excel表格超詳細(xì)系列
這篇文章主要介紹了python實(shí)現(xiàn)處理Excel表格超詳細(xì)系列,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
python中字符串變二維數(shù)組的實(shí)例講解
下面小編就為大家分享一篇python中字符串變二維數(shù)組的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python tornado隊(duì)列示例-一個(gè)并發(fā)web爬蟲代碼分享
這篇文章主要介紹了Python tornado隊(duì)列示例-一個(gè)并發(fā)web爬蟲代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python中文糾錯(cuò)的簡單實(shí)現(xiàn)
這篇文章主要是用 Python 實(shí)現(xiàn)了簡單的中文分詞的同音字糾錯(cuò),目前的案例中只允許錯(cuò)一個(gè)字,感興趣的小伙伴們可以參考一下2021-07-07

