您输入的数据已用完;中断训练。确保您的数据集或生成器至少可以生成“steps_per_epoch”

Viv*_*mar 2 python machine-learning keras tensorflow

当我训练我的自动驾驶汽车模型时,它在第一个时期给了我错误。尽管当我减少它时batch_size它工作正常。但这并没有给我我想要的准确性。

我正在 Google Collab 中训练我的模型。

张量流版本 2.3.1

错误:

错误

WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 20000 batches). You may need to use the repeat() function when building your dataset.
Run Code Online (Sandbox Code Playgroud)

我的代码:

def modified_model():
  model = Sequential()
  model.add(Conv2D(60, (5, 5), input_shape=(32, 32, 1), activation='relu'))
  model.add(Conv2D(60, (5, 5), activation='relu'))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  
  model.add(Conv2D(30, (3, 3), activation='relu'))
  model.add(Conv2D(30, (3, 3), activation='relu'))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  
  model.add(Flatten())
  model.add(Dense(500, activation='relu'))
  model.add(Dropout(0.5))
  model.add(Dense(43, activation='softmax'))
  
  model.compile(Adam(lr = 0.001), loss='categorical_crossentropy', metrics=['accuracy'])
  return model
model = modified_model()
print(model.summary())

history = model.fit_generator(datagen.flow(X_train, y_train, batch_size=50),
                            steps_per_epoch=2000,
                            epochs=10,
                            validation_data=(X_val, y_val), shuffle = 1)
Run Code Online (Sandbox Code Playgroud)

sai*_*sai 6

使用生成器时,让模型计算出实际上需要多少步来覆盖一个纪元,否则您将不得不计算steps_per_epoch=(data_samples/batch_size)step_per_epoch尝试不带参数运行