Можно ли перетасовать данные проверки с помощью fit_generator - PullRequest
0 голосов
/ 01 ноября 2019

Используя Tensorflow model.fit_generator, мы можем установить shuffle в True. В документе говорится, что он будет перетасовывать данные тренировочного генератора перед каждой эпохой.

Поскольку у меня много данных, моя цель состоит в том, чтобы проверять выборку моих данных проверки каждые 100 шагов, поэтому я устанавливаю steps_per_epoch равным 100и используя shuffle = True, я знаю, что 100 партий обучающих данных будут случайным образом выбираться из обучающих данных для каждой эпохи.

Есть ли способ добиться того же с моими проверочными данными? То есть, каждый раз, когда мы проверяем, случайным образом выбираем 50 партий из всех данных проверки

traindata = 200_000
validation data = 40_000
batch_size = 32

model.fit_generator(
    train_generator,
    steps_per_epoch=100,
    epochs=20,
    verbose=1,
    callbacks=[tensorboard, early_stopping, mcp_save],
    validation_data=test_generator,
    validation_steps=50,
    max_queue_size=10,
    workers=4,
    use_multiprocessing=False,
    shuffle=True,
)
def make_train_generator():
    train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255)
    train_generator = train_datagen.flow_from_directory('data/train',
                                                        target_size=(32, 64), 
                                                        class_mode='binary', 
                                                        batch_size=32)
    return train_generator

def make_test_generator():
    test_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255)
    test_generator = test_datagen.flow_from_directory('data/test',
                                                        target_size=(32, 64), 
                                                        class_mode='binary', 
                                                        batch_size=32)
    return test_generator
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...