from torchvision import transforms
from PIL import Image
import torch
import torchvision.models as models
from torchvision.models import VGG16_Weights
model = models.vgg16(weights=VGG16_Weights.DEFAULT)
# 加载图像
image = Image.open('dog.jpg')
# 数据预处理
preprocess = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
# 对图像进行预处理
input_tensor = preprocess(image)
input_batch = input_tensor.unsqueeze(0)
# 将图像输入到模型中
model.eval()
with torch.no_grad():
features = model(input_batch)
print(features.data.cpu().numpy()[0].ravel().tolist())
print(len(features.data.cpu().numpy()[0].ravel().tolist()))
# 获取特征向量
# feature_vector = torch.flatten(features, 1)
# print(len(feature_vector.data.cpu().numpy()[0].ravel().tolist()))
vgg16提取图片特征向量
于 2024-04-27 00:02:47 首次发布