Keras DataGenerator с набором проверки, меньшим, чем размер пакета, не выполняет проверку - PullRequest
1 голос
/ 22 мая 2019

Я написал DataGenerator и инициализировал validation_generator. Если размер партии, указанный для обучения, больше, чем размер набора проверки, потери на проверку / расчет не рассчитываются.

Если набор проверки больше, все работает нормально. Указание validation_steps не помогает.

# Create data generators
training_generator = DataGenerator(partition['train'], embedding_model, **params)
validation_generator = DataGenerator(partition['validation'], embedding_model, **params)

# create LSTM
model = get_LSTM_v1(seq_length, input_dim, hot_enc_dim)

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

# train LSTM
history = model.fit_generator(
    generator=training_generator,
    validation_data=validation_generator,
    epochs=n_epochs,
    use_multiprocessing=True,
    workers=cpu_cores
)

1 Ответ

1 голос
/ 22 мая 2019

DataGenerator, возможно, потребуется изменить, чтобы вернуть частичную партию, когда размер партии меньше размера набора проверки.

В большинстве случаев количество вычисляемых партий, возвращаемых генератором, соответствует полу деления числа образцов на размер партии. Это вернет ноль, если размер пакета больше, чем размер набора.

Вы можете попытаться обойти, повторив данные, чтобы при необходимости их хватило для полной партии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...