如何使用DINO作为特征提取器?

问题描述 投票:0回答:2

我想使用 DINO github 作为特征提取器。但我不知道如何实例化 DINO 模型,然后向其提供一组图像(如 cifar10)并保存特征?

基本上,如何加载模型,然后从检查点可视化特征(无需训练——仅检查点)?

python-3.x deep-learning pytorch
2个回答
2
投票

您需要安装 PyTorch。然后你就可以使用你想要的模型(第一次使用时会下载),如github所示。例如,对于 vits16:

vits16 = torch.hub.load('facebookresearch/dino:main', 'dino_vits16')
features = vits16(your_input)

然后您可以使用这些功能执行您想要的操作。


0
投票
  • 导入包
import torch
from torchvision import transforms as pth_transforms
from PIL import Image 
  • 加载模型
model_dino = torch.hub.load('facebookresearch/dino:main', 'dino_vits16', pretrained=True)

您可以从几种恐龙变体中进行选择

  • 定义模型变换
transform = pth_transforms.Compose([
        pth_transforms.ToTensor(),
        pth_transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)),
    ])

based on [source][2]
  • 加载图像并变换图像

img = Image.open(image_path)
img_tensor = transform(img.cuda())

  • 预测图像
predictions = model_dino (img_tensor) 
© www.soinside.com 2019 - 2024. All rights reserved.