Почему CNN выполняет больше, чем размер обучения - PullRequest
0 голосов
/ 26 февраля 2020

почему когда len (trainData) = 75 Подробный вариант выполнения, показывающий число больше 75?

Сценарий выполнения моей модели

batch_size=64
h5_path = "EPOC_1_Feb_25_model.h5"
checkpoint = ModelCheckpoint(h5_path, monitor='val_acc', verbose=1, save_best_only=True, mode='max')

history = model.fit_generator(
    data_gen(train2, id_label_map, batch_size, augment=True),
    validation_data=data_gen(val, id_label_map, batch_size),
    epochs=1, verbose=1,
    callbacks=[checkpoint],
    steps_per_epoch=len(train) // batch_size,
    validation_steps=len(val) // batch_size)
model.load_weights(h5_path)

Подробное исполнение

Эпоха 1/1

7658/9409 [======================> ......]

учитывая len(train2) = 75 Почему это показывает 7658/9409 ?


My Генератор данных

def data_gen(list_files, id_label_map, batch_size, augment=False):
    seq = get_seq()
    while True:
        shuffle(list_files)
        for batch in chunker(list_files, batch_size):
            X = [cv2.imread(x) for x in batch ] 
            Y = [id_label_map.get(x) for x in batch]#[id_label_map[get_id_from_file_path(x)] for x in batch]
            if augment:
                X = seq.augment_images(X)
            X = [preprocess_input(x) for x in X]

            yield np.array(X), np.array(Y)
def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

В steps_per_epoch = len(train) //batch_size вместо steps_per_epoch = len(train2) //batch_size Из-за этого вы получаете больше цифр в данных, я думаю

0 голосов
/ 26 февраля 2020

Я думаю, что это происходит из-за увеличения ваших данных. Попробуйте установить:

augment=False

В вашем data_gen вызове, чтобы проверить это.

...