示例#1
0
def train(model_type, batch_size, sequence_length, frame_shape):
    model = ACModel(model_type, input_shape = (20, 120, 120, 3))
    data = DataSet(sequence_length, frame_shape)

    checkpoint = ModelCheckpoint(filepath = os.path.join('CheckPoints', (model_type + '-.{epoch:03d}-{val_loss:.3f}.hdf5')), verbose = 1, save_best_only = True)
    tensorBoard = TensorBoard(log_dir = os.path.join('CheckPoints', 'logs', model_type))

    if 'parallel' not in model_type:
        tri_generator = data.generator('train', 'fn', batch_size)
        val_generator = data.generator('test', 'fn', batch_size)
    else:
        tri_generator = data.parallel_generator('train', batch_size)
        val_generator = data.parallel_generator('test', batch_size)

    model.model.fit_generator(generator = tri_generator, 
                              steps_per_epoch = data.size('train') // batch_size, 
                              epochs = epochs,
                              verbose = 1,
                              callbacks = [tensorBoard, checkpoint],
                              validation_data = val_generator, 
                              validation_steps = 4, 
                              workers = 1)