因为在训练时的数据维度一般都是 (batch_size, c, h, w),而在测试时只输入一张图片(c,h,w),所以需要扩展维度,扩展维度有多个方法:
法①
import cv2 import torch image = cv2.imread(img_path) image = torch.tensor(image) print(image.size()) img = image.unsqueeze(dim=0) print(img.size()) img = img.squeeze(dim=0) print(img.size()) # output: # torch.Size([(h, w, c)]) # torch.Size([1, h, w, c]) # torch.Size([h, w, c])
法②
import cv2 import numpy as np image = cv2.imread(img_path) print(image.shape) img = image[np.newaxis, :, :, :] print(img.shape) # output: # (h, w, c) # (1, h, w, c)
法③
import cv2 import torch image = cv2.imread(img_path) image = torch.tensor(image) print(image.size()) img = image.view(1, *image.size()) print(img.size()) # output: # torch.Size([h, w, c]) # torch.Size([1, h, w, c])
Pytorch之扩展单张图片维度(unsqueeze&np.newaxis&view)
于 2020-07-29 16:18:03 首次发布