gpt4 book ai didi

python - ImportError : Imageio Pillow requires Pillow, 不是 PIL!在 M1 Mac 上

转载 作者:行者123 更新时间:2023-12-05 05:41:45 30 4
gpt4 key购买 nike

这个问题可能已经被问过好几次了,但我无法解决这个错误。我的 M1 Mac 上安装了 pillow、imageio 和其他库。但是,当我在代码下方运行时,仍然出现错误。

注意:我使用 miniforge 创建了我的环境。

代码:image = imread(source_path+'/'+ t[文件夹 + (batch*batch_size)].strip().split(';')[0]+'/'+imgs[item]).astype(np.float32)

如果需要任何其他信息来解决此问题,请在此处添加。

错误:

---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Input In [11], in <cell line: 1>()
----> 1 model.fit(train_generator, steps_per_epoch=steps_per_epoch, epochs=num_epochs, verbose=1,
2 callbacks=callbacks_list, validation_data=val_generator,
3 validation_steps=validation_steps, class_weight=None, workers=1, initial_epoch=0)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/engine/training.py:1133, in Model.fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)
1127 self._cluster_coordinator = cluster_coordinator.ClusterCoordinator(
1128 self.distribute_strategy)
1130 with self.distribute_strategy.scope(), \
1131 training_utils.RespectCompiledTrainableState(self):
1132 # Creates a `tf.data.Dataset` and handles batch and epoch iteration.
-> 1133 data_handler = data_adapter.get_data_handler(
1134 x=x,
1135 y=y,
1136 sample_weight=sample_weight,
1137 batch_size=batch_size,
1138 steps_per_epoch=steps_per_epoch,
1139 initial_epoch=initial_epoch,
1140 epochs=epochs,
1141 shuffle=shuffle,
1142 class_weight=class_weight,
1143 max_queue_size=max_queue_size,
1144 workers=workers,
1145 use_multiprocessing=use_multiprocessing,
1146 model=self,
1147 steps_per_execution=self._steps_per_execution)
1149 # Container that configures and calls `tf.keras.Callback`s.
1150 if not isinstance(callbacks, callbacks_module.CallbackList):

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/engine/data_adapter.py:1364, in get_data_handler(*args, **kwargs)
1362 if getattr(kwargs["model"], "_cluster_coordinator", None):
1363 return _ClusterCoordinatorDataHandler(*args, **kwargs)
-> 1364 return DataHandler(*args, **kwargs)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/engine/data_adapter.py:1154, in DataHandler.__init__(self, x, y, sample_weight, batch_size, steps_per_epoch, initial_epoch, epochs, shuffle, class_weight, max_queue_size, workers, use_multiprocessing, model, steps_per_execution, distribute)
1152 adapter_cls = select_data_adapter(x, y)
1153 self._verify_data_adapter_compatibility(adapter_cls)
-> 1154 self._adapter = adapter_cls(
1155 x,
1156 y,
1157 batch_size=batch_size,
1158 steps=steps_per_epoch,
1159 epochs=epochs - initial_epoch,
1160 sample_weights=sample_weight,
1161 shuffle=shuffle,
1162 max_queue_size=max_queue_size,
1163 workers=workers,
1164 use_multiprocessing=use_multiprocessing,
1165 distribution_strategy=ds_context.get_strategy(),
1166 model=model)
1168 strategy = ds_context.get_strategy()
1170 self._current_step = 0

`enter code here`File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/engine/data_adapter.py:809, in GeneratorDataAdapter.__init__(self, x, y, sample_weights, workers, use_multiprocessing, max_queue_size, model, **kwargs)
805 super(GeneratorDataAdapter, self).__init__(x, y, **kwargs)
807 # Since we have to know the dtype of the python generator when we build the
808 # dataset, we have to look at a batch to infer the structure.
--> 809 peek, x = self._peek_and_restore(x)
810 peek = self._standardize_batch(peek)
811 peek = _process_tensorlike(peek)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/keras/engine/data_adapter.py:866, in GeneratorDataAdapter._peek_and_restore(x)
864 @staticmethod
865 def _peek_and_restore(x):
--> 866 peek = next(x)
867 return peek, itertools.chain([peek], x)

Input In [4], in generator(source_path, folder_list, batch_size)
16 imgs = os.listdir(source_path+'/'+ t[folder + (batch*batch_size)].split(';')[0]) # read all the images in the folder
17 for idx,item in enumerate(img_idx): # Iterate iver the frames/images of a folder to read them in
---> 18 image = imread(source_path+'/'+ t[folder + (batch*batch_size)].strip().split(';')[0]+'/'+imgs[item]).astype(np.float32)
20 #crop the images and resize them. Note that the images are of 2 different shape
21 #and the conv3D will throw error if the inputs in a batch have different shapes
22 # Let us resize all the images.Let's use PIL.Image.NEAREST (use nearest neighbour) resampling filter.
23 resized_image = resize(image,(y,z)) ##default resample=1 or 'P' which indicates PIL.Image.NEAREST

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/imageio/core/functions.py:206, in imread(uri, format, **kwargs)
202 raise TypeError('Invalid keyword argument "mode", '
203 'perhaps you mean "pilmode"?')
205 # Get reader and read first
--> 206 reader = read(uri, format, 'i', **kwargs)
207 with reader:
208 return reader.get_data(0)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/imageio/core/functions.py:123, in get_reader(uri, format, mode, **kwargs)
121 format = formats[format]
122 else:
--> 123 format = formats.search_read_format(request)
124 if format is None:
125 raise ValueError('Could not find a format to read the specified file '
126 'in mode %r' % mode)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/imageio/core/format.py:673, in FormatManager.search_read_format(self, request)
671 # Select the first that can
672 for format in selected_formats:
--> 673 if format.can_read(request):
674 return format
676 # If no format could read it, it could be that file has no or
677 # the wrong extension. We ask all formats again.

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/imageio/core/format.py:188, in Format.can_read(self, request)
183 def can_read(self, request):
184 """ can_read(request)
185
186 Get whether this format can read data from the specified uri.
187 """
--> 188 return self._can_read(request)

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/imageio/plugins/pillow.py:97, in PillowFormat._can_read(self, request)
96 def _can_read(self, request):
---> 97 Image = self._init_pillow()
98 if request.mode[1] in (self.modes + '?'):
99 if self.plugin_id in Image.OPEN:

File ~/miniforge3/envs/tensorflow/lib/python3.9/site-packages/imageio/plugins/pillow.py:81, in PillowFormat._init_pillow(self)
79 import PIL
80 if not hasattr(PIL, 'PILLOW_VERSION'): # pragma: no cover
---> 81 raise ImportError('Imageio Pillow requires '
82 'Pillow, not PIL!')
83 from PIL import Image
84 self._Image = Image

ImportError: Imageio Pillow requires Pillow, not PIL!

最佳答案

我知道了以下决议。它对我有用。

这是 imageio 的一个问题,已于 2018 年 4 月解决:https://github.com/imageio/imageio/pull/336

请更新到 imageio 2.4.0 或更新版本。

关于python - ImportError : Imageio Pillow requires Pillow, 不是 PIL!在 M1 Mac 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72240791/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com