Это очень сложно.Я почти перепробовал все решения в Интернете, но все еще не могу решить эту проблему.
Если я просто наберу
from PIL import ImageFile
print(Image.__file__)
Кажется, все работает нормально, и система напечатает
C:\Users\BenWang\Anaconda3\envs\tensorflow\lib\site-packages\PIL\Image.py
Вот так
Но в моем коде, если я использую следующий код:
import sys
from PIL import Image
ImageFile.LOAD_TRUNCATED_IMAGES = True
train_tensors = paths_to_tensor(train_files).astype('float32')/255
valid_tensors = paths_to_tensor(valid_files).astype('float32')/255
test_tensors = paths_to_tensor(test_files).astype('float32')/255
Ошибка будет выглядеть примерно так:
ImportError Traceback (most recent call last)
<ipython-input-166-10a043c54408> in <module>()
4
5
----> 6 train_tensors = paths_to_tensor(train_files).astype('float32')/255
7 valid_tensors = paths_to_tensor(valid_files).astype('float32')/255
8 test_tensors = paths_to_tensor(test_files).astype('float32')/255
<ipython-input-149-36af157e68bd> in paths_to_tensor(img_paths)
11
12 def paths_to_tensor(img_paths):
---> 13 list_of_tensors = [path_to_tensor(img_path) for img_path in tqdm(img_paths)]
14 return np.vstack(list_of_tensors)
<ipython-input-149-36af157e68bd> in <listcomp>(.0)
11
12 def paths_to_tensor(img_paths):
---> 13 list_of_tensors = [path_to_tensor(img_path) for img_path in tqdm(img_paths)]
14 return np.vstack(list_of_tensors)
<ipython-input-149-36af157e68bd> in path_to_tensor(img_path)
4 def path_to_tensor(img_path):
5
----> 6 img = image.load_img(img_path, target_size=(224, 224))
7
8 x = image.img_to_array(img)
~\Anaconda3\envs\tensorflow\lib\site-packages\keras_preprocessing\image\utils.py in load_img(path, grayscale, color_mode, target_size, interpolation)
100 color_mode = 'grayscale'
101 if pil_image is None:
--> 102 raise ImportError('Could not import PIL.Image. '
103 'The use of `array_to_img` requires PIL.')
104 img = pil_image.open(path)
ImportError: Could not import PIL.Image. The use of `array_to_img` requires PIL.