"Cats vs Dogs" 人工神经网络 Tensorflow model.fit 问题

"Cats vs Dogs" artificial neural network Tensorflow model.fit problems

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

我们应该运行这段代码来训练人工智能:

#%%
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-cats\small\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:\Users\Nicholai\.spyder-py3\temp.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:\Users\Nicholai\.spyder-py3\temp.py", line 61, in <module>
    history = model.fit_generator(

  File "C:\Users\Nicholai\anaconda3\envs\CNN\lib\site-packages\keras\engine\training.py", line 2016, in fit_generator
    return self.fit(

  File "C:\Users\Nicholai\anaconda3\envs\CNN\lib\site-packages\keras\utils\traceback_utils.py", line 67, in error_handler
    raise e.with_traceback(filtered_tb) from None

  File "C:\Users\Nicholai\anaconda3\envs\CNN\lib\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.

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

    Traceback (most recent call last):

  File "C:\Users\Nicholai\.spyder-py3\temp.py", line 61, in <module>
    history = model.fit(

  File "C:\Users\Nicholai\anaconda3\envs\CNN\lib\site-packages\keras\utils\traceback_utils.py", line 67, in error_handler
    raise e.with_traceback(filtered_tb) from None

  File "C:\Users\Nicholai\anaconda3\envs\CNN\lib\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.')

和:

ImportError: Image transformations require SciPy. Install SciPy.

只需通过 pip install 或您在那里使用的任何工具安装缺少的包 ...