web-dev-qa-db-fra.com

Comment redimensionner un tenseur de Pytorch?

Maintenant j'ai un torch.Tensor de taille (5, 1, 44, 44) à Pytorch.

  • 5 = taille du lot
  • 1 = canal
  • 44 = Hauteur d'image
  • 44 = largeur d'image

et je veux "redimensionner" pour former (5, 1, 224, 224)

Comment puis je faire ça? Quelles fonctions dois-je utiliser?

6
Gerwe1s_Ji

On dirait que vous recherchez interpolate (une fonction dans nn.functional):

import torch.nn.functional as nnf

x = torch.Rand(5, 1, 44, 44)
out = nnf.interpolate(x, size=(224, 224), mode='bicubic', align_corners=False)

Si vous vous souciez vraiment de la précision de l'interpolation, vous devriez avoir un coup d'œil à ResizeRight : un package pytorch/numpy qui traite avec précision avec toutes sortes de "cas de bord" lors du redimensionnement des images . Cela peut avoir effet lorsque vous fusionnez directement des caractéristiques de différentes échelles: une interpolation inexacte peut entraîner des désalignements.

11
Shai