【问题标题】:Getting error while calling fit_generator :python Tensorflow调用 fit_generator 时出错:python Tensorflow
【发布时间】:2018-03-13 09:50:05
【问题描述】:

我正在尝试制作可以从图像中预测动物的 CNN。以下是我正在使用的工具和 python 版本。 IDE:Spyder 3.2.6 与 Anaconda 张量流:版本 1.2.1 凯拉斯 2.1.4。 蟒蛇3.5

from keras.models import Sequential
from keras.layers import Convolution2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense
from keras.layers import Conv2D

classifier = Sequential()
classifier.add(Convolution2D(32,3,3,input_shape=(64,64,3),activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Flatten())
classifier.add(Dense(output_dim = 128,activation='relu'))
classifier.add(Dense(output_dim = 1,activation='sigmoid'))
classifier.compile(optimizer='adam', loss = 'binary_crossentropy', matrix = ['accuracy'])

from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

training_set = train_datagen.flow_from_directory('dataset/training_set',
                                                    target_size=(64, 64),
                                                    batch_size=32,
                                                    class_mode='binary') 


test_set = test_datagen.flow_from_directory('dataset/test_set',
                                            target_size=(64, 64),
                                            batch_size=32,
                                            class_mode='binary')

classifier.fit_generator(training_set,
                         steps_per_epoch=(8000/32),
                         epochs=25,
                         validation_data=test_set,
                         validation_steps=(2000/32))

但是当我运行上面显示的 fit_generator 方法时,我得到以下错误

classifier.fit_generator(training_set,
                         steps_per_epoch=(8000/32),
                         epochs=25,
                         validation_data=test_set,
                         validation_steps=(2000/32))
Epoch 1/25
Traceback (most recent call last):

  File "<ipython-input-7-f76922930094>", line 5, in <module>
    validation_steps=(2000/32))

  File "C:\Users\fspathan\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\fspathan\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\models.py", line 1276, in fit_generator
    initial_epoch=initial_epoch)

  File "C:\Users\fspathan\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\fspathan\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\engine\training.py", line 2224, in fit_generator
    class_weight=class_weight)

  File "C:\Users\fspathan\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\engine\training.py", line 1883, in train_on_batch
    outputs = self.train_function(ins)

  File "C:\Users\fspathan\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\backend\tensorflow_backend.py", line 2478, in __call__
    **self.session_kwargs)

TypeError: run() got an unexpected keyword argument 'matrix'

我已经完成了 enogh google 并应用了所有必要的修复,但仍然没有进展。如果有人知道解决方案,那将是一个很大的帮助

非常感谢

【问题讨论】:

    标签: python tensorflow deep-learning conv-neural-network


    【解决方案1】:

    排队

    classifier.compile(optimizer='adam', loss = 'binary_crossentropy', matrix = ['accuracy'])
    

    您传递参数matrix = ['accuracy']。这不是compile 函数接受的任何参数,并且如文档所述,传递给此函数的额外参数被转发到后端,在 TensorFlow 的情况下,传递到内部 tf.Session 对象的 run 方法.但是,matrix 也不是该函数的预期参数,因此在尝试传递它时会失败。

    我怀疑您打算让 Keras 计算准确度指标,在这种情况下,您需要传递 metrics 参数,而不是 matrix

    classifier.compile(optimizer='adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 2020-08-25
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多