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