embedding = {'type': args.embedding_type, 'path': args.embedding_path}
if args.model == 'sentence_pair':
    reader = ReadData(path_file=args.dataset,
                      embedding_config=embedding,
                      data_shape=inputs,
                      train_val_split=args.train_val_split,
                      sentence_pair=True)
else:
    reader = ReadData(path_file=args.dataset,
                      embedding_config=embedding,
                      data_shape=inputs,
                      train_val_split=args.train_val_split,
                      sentence_pair=False)

print('Reading Validation Data ..')
val_x, val_y = reader.read_val()

train_generator = reader.generator()

log_dir = args.model

logging = TrainValTensorBoard(log_dir=log_dir)

checkpoint = ModelCheckpoint(os.path.join(
    log_dir, 'ep{epoch:03d}-val_loss{val_loss:.3f}-val_acc{val_acc:.3f}.h5'),
                             monitor='val_loss',
                             save_weights_only=True,
                             save_best_only=True,
                             period=1)

reduce_lr = ReduceLROnPlateau(monitor='val_loss',