如何在 PyTorch 中更改图片大小

mja*_*kie 7 conv-neural-network pytorch

我试图转换CNN Keras模型使用FER2013数据集PyTorch模型情感识别和我有以下错误:

Traceback (most recent call last):
  File "VGG.py", line 112, in <module>
    transfer.keras_to_pytorch(keras_network, pytorch_network)
  File "/home/eorg/NeuralNetworks/user/Project/model/nntransfer.py", line 121, in keras_to_pytorch
    pytorch_model.load_state_dict(state_dict)
  File "/home/eorg/.local/lib/python2.7/site-packages/torch/nn/modules/module.py", line 334, in load_state_dict
    own_state[name].copy_(param)
RuntimeError: inconsistent tensor size at /b/wheel/pytorch-src/torch/lib/TH/generic/THTensorCopy.c:51
Run Code Online (Sandbox Code Playgroud)

我知道错误与图像的形状有关。在 Keras 中,输入大小定义为 48 x 48。

我的问题是如何在 PyTorch 模型中定义我的图片是 48x48 的形状?我在文档和示例中找不到这样的功能。

任何帮助都会有用!

blc*_*ird 13

为了自动调整输入图像的大小,您需要定义所有图像经过的预处理管道。这可以通过torchvision.transforms.Compose()Compose docs)来完成。要调整图像大小,您可以使用torchvision 包中的torchvision.transforms.Scale()Scale docs)。

请参阅文档: 注意,在文档中,它表示.Scale()已弃用,.Resize()应改为使用。 调整文档大小

这将是一个最小的工作示例:

import torch
from torchvision import transforms

p = transforms.Compose([transforms.Scale((48,48))])

from PIL import Image

img = Image.open('img.jpg')

img.size
# (224, 224) <-- This will be the original dimensions of your image

p(img).size
# (48, 48) <-- This will be the rescaled/resized dimensions of your image
Run Code Online (Sandbox Code Playgroud)

  • 这真的是问题的答案吗?我认为他/她正在努力设置模型的图像输入尺寸,而不是图像尺寸本身。 (2认同)