comment mettre à l'échelle une image dans Pytorch sans définir la hauteur et la largeur à l'aide de transformations? ('--upscale_factor', type = int, required = True, help = "facteur de montée en gamme de la super résolution")
3 Réponses :
Cela pourrait faire le travail
transforms.Compose([transforms.resize(ImageSize*Scaling_Factor)])
Si je comprends bien que vous souhaitez suréchantillonner un tenseur x
en spécifiant simplement un facteur f
(au lieu de spécifier la largeur et la hauteur de la cible), vous pouvez essayer ceci: < pre> XXX
Notez que Upsample
permet plusieurs modes d'interpolation, par exemple mode = 'le plus proche'
ou mode='bilinear'
Voici un exemple intéressant:
tensor([[[[1., 1., 2., 2.], [1., 1., 2., 2.], [3., 3., 4., 4.], [3., 3., 4., 4.]]]])
Sortie:
input = torch.tensor([[1.,2.],[3.,4.]]) input=input[None] input=input[None] output = nn.functional.interpolate(input, scale_factor=2, mode='nearest') print(output)
C'est intéressant, mais cela peut poser des problèmes si vos images ont une taille différente, après avoir appliqué
upscale
cela freine votre lot. Vous devez donc penser à votre pipeline de prétraitement.J'ai besoin d'interpoler l'image avant de la transmettre au NN, c'est pourquoi, mais je ne veux pas modifier l'ensemble de données