#降低pillow的版本即可
pip install pillow==8.2.0
TypeError: __array__() takes 1 positional argument but 2 were given
#Steps to reproduce the behavior:
import torch
import torchvision.transforms as transforms
from PIL import Image
tfms = transforms.Compose([
transforms.Resize(456),
transforms.CenterCrop(456),
transforms.ToTensor(), # range [0, 255] -> [0.0,1.0]
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
frame = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
img = tfms(frame).unsqueeze(0)
I did some debug. I think the problem comes from pypi Pillow 8.2.0 -> 8.3.0 update from June 30, 2021. Downgrading with.
解决方法:
pip install pillow==8.2.0
may resolve the issue. We are using numpy 1.20.2 and latest pytorch build from master.
#或者
We have the same issue on numpy 1.20 and 1.21, had to downgrade to torch 1.8.1 torchvision 0.9.1