首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NameError:在尝试创建模型时未定义名称'scipy‘

NameError:在尝试创建模型时未定义名称'scipy‘
EN

Stack Overflow用户
提问于 2022-07-10 08:43:50
回答 3查看 929关注 0票数 3

我目前正在尝试使用转移学习来创建一个模型,但是我得到了一个错误

代码语言:javascript
运行
复制
NameError: name 'scipy' is not defined

我要从录像中学到东西。我们已经将一些数据集加载到计算机上,我正在尝试将这些数据集转换为“.json”和“.h5”文件。我必须运行您在第一部分中看到的代码并创建模型。应该有一个下载,如视频,但我得到了一个错误,我无法解决它。

这是我的密码:

代码语言:javascript
运行
复制
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dense
from keras.applications.vgg16 import VGG16
import matplotlib.pyplot as plt
from glob import glob
from keras.utils import img_to_array
from keras.utils import load_img

train_path = "/Users/atakansever/Desktop/CNNN/fruits-360_dataset/fruits-360/Training/"
test_path = "/Users/atakansever/Desktop/CNNN/fruits-360_dataset/fruits-360/Test/"

# img = load_img(train_path + "Tangelo/0_100.jpg")
# plt.imshow(img)
# plt.axes("off")
# plt.show()

numberOfClass = len(glob(train_path + "/*"))
# print(numberOfClass)

vgg = VGG16()
# print(vgg.summary())

vgg_layer_list = vgg.layers
# print(vgg_layer_list)

model = Sequential()
for i in range(len(vgg_layer_list)-1):
    model.add(vgg_layer_list[i])

# print(model.summary())

for layers in model.layers:
    layers.trainable = False

model.add(Dense(numberOfClass, activation="softmax"))
# print(model.summary())

model.compile(loss = "categorical_crossentropy",optimizer = "rmsprop",metrics = ["accuracy"])

#train
train_data = ImageDataGenerator().flow_from_directory(train_path, target_size=(224,224))
test_data = ImageDataGenerator().flow_from_directory(test_path, target_size=(224,224))

batch_size = 32

hist = model.fit_generator(train_data,
steps_per_epoch=1600//batch_size,
epochs=25,
validation_data= test_data,
validation_steps=800//batch_size)

这是一个错误

代码语言:javascript
运行
复制
pyenv shell 3.9.7
atakansever@atakan-Air CNNN % pyenv shell 3.9.7
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
atakansever@atakan-Air CNNN % /Users/atakansever/.pyenv/versions/3.9.7/bin/python /Users/atakansever/Desktop/CNNN/fruits.py
Metal device set to: Apple M1

systemMemory: 8.00 GB
maxCacheSize: 2.67 GB

2022-07-10 11:17:50.428036: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:305] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.
2022-07-10 11:17:50.428259: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:271] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)
Found 67692 images belonging to 131 classes.
Found 22688 images belonging to 131 classes.
/Users/atakansever/Desktop/CNNN/fruits.py:53: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.
  hist = model.fit_generator(train_data, steps_per_epoch=1600//batch_size,epochs=25,validation_data= test_data,validation_steps=800//batch_size)
Traceback (most recent call last):
  File "/Users/atakansever/Desktop/CNNN/fruits.py", line 53, in <module>
    hist = model.fit_generator(train_data, steps_per_epoch=1600//batch_size,epochs=25,validation_data= test_data,validation_steps=800//batch_size)
  File "/Users/atakansever/.pyenv/versions/3.9.7/lib/python3.9/site-packages/keras/engine/training.py", line 2260, in fit_generator
    return self.fit(
  File "/Users/atakansever/.pyenv/versions/3.9.7/lib/python3.9/site-packages/keras/utils/traceback_utils.py", line 67, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/Users/atakansever/.pyenv/versions/3.9.7/lib/python3.9/site-packages/keras/preprocessing/image.py", line 2244, in apply_affine_transform
    if scipy is None:
NameError: name 'scipy' is not defined
EN

回答 3

Stack Overflow用户

发布于 2022-07-10 08:53:03

尝试pip install scipypip3 install scipy可以解决这个问题

票数 2
EN

Stack Overflow用户

发布于 2022-07-10 08:55:35

首先,如果还没有安装the包,请安装它:

代码语言:javascript
运行
复制
pip install scipy

然后在您的进口产品中添加“参与”:

代码语言:javascript
运行
复制
import scipy # This is new!
from keras.preprocessing.image import ImageDataGenerator
# ... all your imports
票数 0
EN

Stack Overflow用户

发布于 2022-09-06 04:57:06

我单击了错误消息,它将您指向源代码。注释这两行并保存python脚本。

代码语言:javascript
运行
复制
# if scipy is None:   
#   raise ImportError('Image transformations require SciPy. '   
#                     'Install SciPy.')

共码图像

然后它就会完美地运作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72927229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档