PyTorch – Extracción de características en convenciones

Las redes neuronales convolucionales incluyen la función principal, botín… Los siguientes pasos se utilizan para implementar la extracción de características de una red neuronal convolucional.

Paso 1

Importe los modelos adecuados para crear un modelo de extracción de características con PyTorch.

import torch
import torch.nn as nn
from torchvision import models

Paso 2

Cree una clase de extractor de rasgos a la que pueda llamar según sea necesario.

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)

🚫