我对Pythorch非常陌生,我正在尝试获得1*4096格式的预训练模型VGG16特征向量的输出,它是在最后一层之前由层返回的。我发现keras中也有类似的特性。Pythorch有没有直接命令?在
我使用的代码:
import torch
from torch import nn
from torch import optim
import torch.nn.functional as F
from torchvision import models
from torch.autograd import Variable
from PIL import Image
image1 = Image.open(r"C:\Users\user\Pictures\user.png")
model = models.vgg16(pretrained=True)
scaler = transforms.Resize((224, 224))
to_tensor = transforms.ToTensor()
img = to_tensor(scaler(image1)).unsqueeze(0)
model(img).shape
model(img)
负责创建
features
的网络部分名为。。。features
(不仅在VGG中,对于torchvision
内的大多数预训练网络来说都是这样)。在只需使用此字段并按如下方式传递图像:
编辑:
要查看任何
torchvision
模型中发生了什么,可以检查它的源代码。对于VGG(any),在this file的顶部有一个基类。在要获得
^{pr2}$4096
扁平化的特性,您可以进行类似于forward
中定义的操作:您还可以在
modules
或children
上迭代到您想要的任何地方,并输出结果(或结果或您想要的任何结果)相关问题 更多 >
编程相关推荐