AttributeError: module 'scipy.ndimage' 没有属性 'interpolation' Tensorflow CNN

问题描述

这是我的代码的一部分,在数据增强之前,model.fit 正在工作,但是在数据增强后,我收到此错误

AttributeError: 模块 'scipy.ndimage' 没有属性 'interpolation'

这是所有导入库的列表;

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D,MaxPool2D,Flatten,Dense
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import scipy.ndimage
import numpy
import random
import pathlib
import os
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import zipfile
import wget
# Create an augmented data generator
train_datagen_augmented = ImageDataGenerator(rescale=1/255.,rotation_range=0.2,width_shift_range=0.2,height_shift_range=0.2,zoom_range=0.2,horizontal_flip=True)

train_data_augmented = train_datagen_augmented.flow_from_directory(train_dir,target_size=(224,224),batch_size=32,class_mode='categorical')


# Clone the model (use the same architecture)
model_3 = tf.keras.models.clone_model(model)

# Compile the cloned model (same setup as used for model)
model_3.compile(loss="categorical_crossentropy",optimizer=tf.keras.optimizers.Adam(),metrics=["accuracy"])

# Fit the model
history_3 = model_3.fit(train_data_augmented,# use augmented data
                          epochs=5,steps_per_epoch=len(train_data_augmented),validation_data=test_data,validation_steps=len(test_data))

回溯(最近一次调用最后一次):

文件“”,第 6 行,在 history_3 = model_3.fit(train_data_augmented,# 使用增强数据

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\tensorflow\python\keras\engine\training.py",第 1133 行,合身 data_handler = data_adapter.get_data_handler(

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\tensorflow\python\keras\engine\data_adapter.py",第 1364 行,在 get_data_handler 中 返回 DataHandler(*args,**kwargs)

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\tensorflow\python\keras\engine\data_adapter.py",第 1154 行,在 init 中 self._adapter = adapter_cls(

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\tensorflow\python\keras\engine\data_adapter.py",第 932 行,在 init 中 super(KerasSequenceAdapter,self).init(

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\tensorflow\python\keras\engine\data_adapter.py",第 809 行,在 init 中 偷看,x = self._peek_and_restore(x)

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\tensorflow\python\keras\engine\data_adapter.py",第 943 行,在 _peek_and_restore 中 返回 x[0],x

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\keras_preprocessing\image\iterator.py",第 65 行,在 getitem 中 返回 self._get_batches_of_transformed_samples(index_array)

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\keras_preprocessing\image\iterator.py",第 238 行,在 _get_batches_of_transformed_samples 中 x = self.image_data_generator.apply_transform(x,params)

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\keras_preprocessing\image\image_data_generator.py",第 863 行,在 apply_transform 中 x = apply_affine_transform(x,transform_parameters.get('theta',0),

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\keras_preprocessing\image\affine_transformations.py",第 327 行,在 apply_affine_transform 中 channel_images = [ndimage.interpolation.affine_transform(

文件 "C:\Users\batuh\AppData\Roaming\Python\python38\site-packages\keras_preprocessing\image\affine_transformations.py",第 327 行,在 channel_images = [ndimage.interpolation.affine_transform(

AttributeError: 模块 'scipy.ndimage' 没有属性 '插值'

解决方法

我发现了问题。问题是我的 anaconda 虚拟环境中缺少 scipy。我看到的时候还以为安装了scipy

AttributeError: 模块 'scipy.ndimage' 没有属性 '插值'

感谢@simpleApp 的提示。我很抱歉因为心不在焉的错误而打扰您...解决方案是安装 scipy