PyTorch - การสกัดคุณสมบัติในคอนแวนต์
Convolutional Neural Network ประกอบด้วยคุณสมบัติหลัก extraction. ขั้นตอนต่อไปนี้ใช้เพื่อใช้การแยกคุณลักษณะของโครงข่ายประสาทเทียมแบบ convolutional
ขั้นตอนที่ 1
นำเข้าโมเดลที่เกี่ยวข้องเพื่อสร้างโมเดลการแยกคุณลักษณะด้วย“ PyTorch”
import torch
import torch.nn as nn
from torchvision import models
ขั้นตอนที่ 2
สร้างคลาสของตัวแยกคุณลักษณะซึ่งสามารถเรียกได้ว่าเป็นและเมื่อต้องการ
class Feature_extractor(nn.module):
def forward(self, input):
self.feature = input.clone()
return input
new_net = nn.Sequential().cuda() # the new network
target_layers = [conv_1, conv_2, conv_4] # layers you want to extract`
i = 1
for layer in list(cnn):
if isinstance(layer,nn.Conv2d):
name = "conv_"+str(i)
art_net.add_module(name,layer)
if name in target_layers:
new_net.add_module("extractor_"+str(i),Feature_extractor())
i+=1
if isinstance(layer,nn.ReLU):
name = "relu_"+str(i)
new_net.add_module(name,layer)
if isinstance(layer,nn.MaxPool2d):
name = "pool_"+str(i)
new_net.add_module(name,layer)
new_net.forward(your_image)
print (new_net.extractor_3.feature)