Как изменить размер партии в обучении керас ретинанет - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь обучить модель keras_retinanet, как показано в приведенном ниже коде, и тренировка работает нормально.Я создал генератор данных CSVGenerator для функции fit_generator, которая наследует суперкласс «Генератор», в котором есть параметр с именем «batch_size», по умолчанию равный «1».

Я хотел бы изменить значение этого »переменная batch_size, но я не могу понять, как я могу это сделать.Любая помощь очень ценится.

model = load_model('./snapshots/resnet50_csv_01.h5', 
backbone_name='resnet50')

generator = CSVGenerator(
    csv_data_file='./data_set_retina/train.csv',
    csv_class_file='./data_set_retina/class_id_mapping'
)


generator_val = CSVGenerator(
    csv_data_file='./data_set_retina/val.csv',
    csv_class_file='./data_set_retina/class_id_mapping'
)
model.compile(
    loss={
        'regression'    : keras_retinanet.losses.smooth_l1(),
        'classification': keras_retinanet.losses.focal()
    },
    optimizer=keras.optimizers.adam(lr=1e-5, clipnorm=0.001)
)
csv_logger = keras.callbacks.CSVLogger('./logs/training_log.csv', 
separator=',', append=False)

model.fit_generator(generator, steps_per_epoch=80000, epochs=50, 
verbose=1, callbacks=[csv_logger], 

validation_data=generator_val,validation_steps=20000,class_weight=None, 
max_queue_size=10, workers=1, use_multiprocessing=False,
                shuffle=True, initial_epoch=0)

1 Ответ

0 голосов
/ 12 декабря 2018

Полагаю, вы говорите о keras-retinanet хранилище.

Вы можете найти batch size здесь:

https://github.com/fizyr/keras-retinanet/blob/b28c358c71026d7a5bcb1f4d928241a693d95230/keras_retinanet/bin/train.py#L395

Эта переменная затем передается генераторам в словаре common_args.

На самом деле, также можно создать экземпляр CSVGenerator передавая аргумент batch_size.Следующий фрагмент кода:

generator = CSVGenerator(
    csv_data_file='./data_set_retina/train.csv',
    csv_class_file='./data_set_retina/class_id_mapping',
    batch_size=16
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...