pytorch獲取模型的中間層輸出結果

2021-10-24 11:51:51 字數 767 閱讀 6905

在inference階段,整個模型會load到gpu上,進行端到端的計算,通常只會給你輸出乙個最終結果。

如果想要獲取模型的中間層輸出,則需要在計算前標定目標層位置(通過forward返回),或者把模型在那層截斷(當作乙個小模型)輸出

def forward(self, x):

layer1_out = self.layer1(x)

layer2_out = self.layer2(layer1_out)

out = self.final_layer(layer2_out)

return out #, layer2_out

如果想看第二層的輸出結果,只需在return的時候把layer2_out返回即可。

class mymodel:

def __init__(self, ***):

self.backbone = net1()

self.head = net2()

def forward(self, x):

out = self.head(net1(x))

return out

if __name__=='__main__':

model = mymodel()

x = cv2.imread('***')

mid_out = model.backbone(x)

print(mid_out.size())

caffe 從模型中獲取中間層的輸出

首先需要兩個檔案 1.caffemodel 和 deploy.prototxt 2.網路輸入的資料檔案以及需要輸出的那一層的名字 下面以vgg face為例 我需要獲取pool5的輸出 coding utf 8 import sys sys.path.insert 1,home develop ca...

ndis中間層 發包

這個問題,大部分學習ndis中間層的人都會去思考,算是乙個比較經典的問題了。到論壇上問,別人只會告訴你大概的方法和步驟,這裡貼出具體的 希望對研究ndis中間層的哥們有些幫助 ndis status mysendpacket ndis handle ndisbindinghandle,ndis ha...

Keras 中間層 輸出

如何獲取中間層的輸出?一種簡單的方法是建立乙個新的model,使得它的輸出是你想要的那個輸出 from keras.models import model model create the original model layer name my layer intermediate layer m...