我正在使用迁移学习通过imagedatagenerator来提取医学图像的特征。我使用的是pillow版本2.8.0,图像是单通道的,并且是jpeg格式。显示要在我的集成开发环境中安装SciPy版本1.5.4。代码如下:
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?,但通过将pillow版本降级到上面提到的版本,这一问题得到了修复。然而,现在,最后一段代码抛出了错误:
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.我已经在我的集成开发环境中安装并检查了SciPy版本,它似乎没有问题,版本是'1.5.4‘。如何修复此错误?谢谢。
发布于 2021-11-19 16:08:53
这个问题通常是由TensorFlow版本引起的。我相信您当前的版本一定是2.6或类似这样的版本,如果您安装了tensorflow==2.4,这个问题就会得到解决。
https://stackoverflow.com/questions/68881753
复制相似问题