2017-03-15 228 views
3

我有以下代码:Keras模型fit_generator奇怪的错误

datagen = ImageDataGenerator(
     rescale=1./255, 
     target_size=(128, 128), 
     shear_range=0.2, 
     zoom_range=0.2, 
     horizontal_flip=True) 

    test_datagen = ImageDataGenerator(
     rescale=1./255, 
     target_size=(128, 128) 
    ) 

    datagen.fit(X_train) 

    model.fit_generator(
     datagen.flow(X_train, Y_train), 
     samples_per_epoch=len(X_train), 
     epochs=30, 
     verbose=1, 
     validation_data=(X_valid, Y_valid)) 

会抛出这个异常错误

Traceback (most recent call last): 
     File "cnn.py", line 258, in <module> 
      models = run_cross_validation_create_models(num_folds) 
     File "cnn.py", line 205, in run_cross_validation_create_models 
      validation_data=(X_valid, Y_valid)) 
     TypeError: fit_generator() takes at least 4 arguments (5 given) 

有人能解释一下是怎么回事错了,我在一组3700装载图片。

+0

问题的C++部分是什么? –

+0

什么都没有...我删除了标签并添加了一些相关标签。 –

+0

我假设你在代码中定义了'(X_valid,Y_valid)'。如果是这样,请检查是否可以使用'ImageDataGenerator'和'train_on_batch()'进行训练。如果可以的话,那么至少在模型中没有错误。 –

回答

3

它可能来自新API(Keras 2.0昨天发布),fit_generator()现在需要steps_per_epoch参数而不是samples_per_epoch

steps_per_epoch通常是samples_per_epoch/batch_size

你可以找到这个信息in the documentation

它有帮助吗?

+0

没有。我更新了keras,但仍然得到这个异常 –

+0

您可能对使用qnd版本软件的代码更具体一些。 –

+0

即时通讯使用Keras 2.0.8,这里是代码:https://gist.github.com/creotiv/c7fb0328de22ec021f405ebbdc202100 –