用img = cv2.imread(path)加载数据集后,在进行transform时报错:TypeError: Unexpected type <class 'numpy.ndarray'>
transform = transforms.Compose([
transforms.Resize((112, 112)),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(), # range [0, 255] -> [0.0,1.0]
transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
])
报错原因:这是数据格式问题:把transforms.Resize((112, 112))去掉,直接在img = cv2.imread(path)后进行img = cv2.resize(img, (112, 112))
补充:
cv2.imread(path)读取的图片是'numpy.ndarray'格式,要在pytorch里变化形状需要先用transforms.ToTensor()把格式转为tensor格式,才能 transforms.Resize((112, 112))与transforms.RandomHorizontalFlip(),
Image.open(path)读取的图片是PLI格式,需要转numpy.array()或torch.tensor()转格式才能进行相应的数值操作或者张量操作