"Cats vs Dogs"人工神经网络张量流模型拟合问题



当算法显示猫或狗的图片时,我正试图学习机器识别猫或狗。我正在使用Spyder作为IDE和Tensorflow。

我们应该运行此代码来训练AI:

#%%
from tensorflow.keras import layers
from tensorflow.keras import models
model = models.Sequential()
#%%
# 32 filters with 3x3 pixel kernels and ReLU activation for 150x150 RGB (= 3-channel) images
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)))
# Downsample by picking max input from every 2x2 window of previous neurons
model.add(layers.MaxPooling2D((2, 2))) 
# Next layer of filters
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
# More downsampling (important to reduce network size/complexity)
model.add(layers.MaxPooling2D((2, 2))) 
model.add(layers.Conv2D(128, (3, 3), activation='relu')) 
model.add(layers.MaxPooling2D((2, 2))) 
model.add(layers.Conv2D(128, (3, 3), activation='relu')) 
model.add(layers.MaxPooling2D((2, 2)))
#%%
model.add(layers.Flatten()) 
model.add(layers.Dense(512, activation='relu')) 
model.add(layers.Dense(1, activation='sigmoid'))
#%%
from tensorflow.keras import optimizers
model.compile(loss='binary_crossentropy',
optimizer=optimizers.RMSprop(lr=1e-4),
metrics=['acc'])
#%%
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_dir = "C:\Users\Nicholai\Desktop\dogs-vs-catssmall\train"
validation_dir = "C:\Users\Nicholai\Desktop\dogs-vs-cats\small\val"
im_per_batch = 20 
im_size = (150,150) # Same as number of inputs in the network
train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=im_size,
batch_size=im_per_batch,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
validation_dir,
target_size=im_size,
batch_size=im_per_batch,
class_mode='binary')
#%%
num_epochs = 30
history = model.fit_generator(
train_generator,
steps_per_epoch = train_generator.n // im_per_batch,
epochs=num_epochs,
validation_data = validation_generator,
validation_steps = validation_generator.n // im_per_batch)
#%%
model.save('dogs-vs-cats-1.h5')
from keras.models import load_model
model = load_model('dogs-vs-cats-1.h5')

我得到这个错误:

C:UsersNicholai.spyder-py3temp.py:61: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.
history = model.fit_generator(
Traceback (most recent call last):
File "C:UsersNicholai.spyder-py3temp.py", line 61, in <module>
history = model.fit_generator(
File "C:UsersNicholaianaconda3envsCNNlibsite-packageskerasenginetraining.py", line 2016, in fit_generator
return self.fit(
File "C:UsersNicholaianaconda3envsCNNlibsite-packageskerasutilstraceback_utils.py", line 67, in error_handler
raise e.with_traceback(filtered_tb) from None
File "C:UsersNicholaianaconda3envsCNNlibsite-packageskeras_preprocessingimageaffine_transformations.py", line 281, in apply_affine_transform
raise ImportError('Image transformations require SciPy. '
ImportError: Image transformations require SciPy. Install SciPy.

我知道更新到2.0的Tensorflow可以使用model.fit((而不是model.fit_generator((。安装了SciPy。当我尝试时,我仍然会收到这样的错误:

Traceback (most recent call last):
File "C:UsersNicholai.spyder-py3temp.py", line 61, in <module>
history = model.fit(
File "C:UsersNicholaianaconda3envsCNNlibsite-packageskerasutilstraceback_utils.py", line 67, in error_handler
raise e.with_traceback(filtered_tb) from None
File "C:UsersNicholaianaconda3envsCNNlibsite-packageskeras_preprocessingimageaffine_transformations.py", line 281, in apply_affine_transform
raise ImportError('Image transformations require SciPy. '

我做错了什么?

您甚至写了一个错误:

ImportError('Image transformations require SciPy.')

和:

ImportError: Image transformations require SciPy. Install SciPy.

只需通过pip install或您在那里使用的任何工具安装丢失的软件包。。。

相关内容

最新更新