def train_model(self): t0 = time.time() print(self.model.summary()) dataset = Datasets(self.options) train_gen = dataset.make_split_generator('train') validation_gen = dataset.make_split_generator('validation') optimizer = Adam(lr=self.options.init_lr, decay=0) self.model.compile( optimizer, loss=self.loss_function, metrics=self.metrics) callbacks = self.make_callbacks() self.model.fit_generator( train_gen, initial_epoch=self.options.init_epoch, steps_per_epoch=self.options.steps_per_epoch, epochs=self.options.epochs, validation_data=validation_gen, validation_steps=self.options.validation_steps, callbacks=callbacks) print('Training time cost: %0.2f(min).'%((time.time()-t0)/60))