【问题标题】:ImportError: Image transformations require SciPy. Install SciPyImportError:图像转换需要 SciPy。安装 SciPy
【发布时间】:2021-10-23 03:55:48
【问题描述】:

我正在使用迁移学习通过 imagedatagenerator 提取医学图像的特征。我使用的是枕头版本 2.8.0,图像是单通道的,是 jpeg 格式的。 SciPy 1.5.4 版显示安装在我的 IDE 上。代码如下:

import os, glob
import numpy as np
import matplotlib.pyplot as plt
import cv2
import nibabel as nib

import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from tensorflow import keras
from keras.models import load_model
from keras import backend as K
from keras.applications.vgg16 import VGG16

import os
import cv2
from PIL import Image
import numpy as np
import scipy
from matplotlib import pyplot as plt


batch_size = 64
train_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
        '/home/idu/Desktop/COV19D/train/', 
        target_size=(512, 512),
        batch_size=batch_size,
        classes = ['covid','non-covid'],
        class_mode='binary') 

迁移学习模型如下:

SIZE = 512
VGG_model = VGG16(include_top=False, weights=None, input_shape=(SIZE, SIZE, 1))
for layer in VGG_model.layers:
    layer.trainable = False 

feature_extractor=VGG_model.predict(train_generator)

它曾经抛出错误__array__() takes 1 positional argument but 2 were given? 但是通过将枕头版本降级到上述版本来解决这个问题。然而,现在最后的代码抛出了错误:

Traceback (most recent call last):

  File "<ipython-input-120-b9bad68819ec>", line 1, in <module>
    feature_extractor=VGG_model.predict(train_generator)

  File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/training.py", line 1681, in predict
    steps_per_execution=self._steps_per_execution)

  File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 1348, in get_data_handler
    return DataHandler(*args, **kwargs)

  File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 1150, in __init__
    model=model)

  File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 793, in __init__
    peek, x = self._peek_and_restore(x)

  File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 850, in _peek_and_restore
    peek = next(x)

  File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py", line 104, in __next__
    return self.next(*args, **kwargs)

  File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py", line 116, in next
    return self._get_batches_of_transformed_samples(index_array)

  File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py", line 238, in _get_batches_of_transformed_samples
    x = self.image_data_generator.apply_transform(x, params)

  File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/image_data_generator.py", line 874, in apply_transform
    order=self.interpolation_order)

  File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/affine_transformations.py", line 281, in apply_affine_transform
    raise ImportError('Image transformations require SciPy. '

ImportError: Image transformations require SciPy. Install SciPy.

我已经在我的 IDE 上安装并检查了 SciPy 版本,它似乎没问题,版本 '1.5.4'。我该如何解决这个错误?谢谢。

【问题讨论】:

  • 你导入了吗?请在此处发布您的完整代码
  • 是的。我已经导入了 scipy 库。现在可以在上面看到完整的代码。谢谢!
  • 升级枕头然后显示错误行,我认为scipy需要更新枕头
  • 这个错误,当枕头是最新的,可以在这里看到stackoverflow.com/questions/68880452/…。可以在此处查看带有错误的完整代码stackoverflow.com/questions/68291947/…。感谢您的宝贵时间!

标签: python arrays image image-processing arguments


【解决方案1】:

这个问题通常是因为TensorFlow版本。我相信您当前的版本必须是 2.6 或类似的版本,如果您安装 tensorflow==2.4,此问题将得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2018-02-03
    • 2016-10-24
    相关资源
    最近更新 更多