def fit(self, batch_size=128, nb_epochs=100, save_history=True, history_fn="Model History.txt") -> Model: """ Standard method to train any of the models. """ samples_per_epoch = img_utils.image_count() val_count = img_utils.val_image_count() if self.model == None: self.create_model(batch_size=batch_size) callback_list = [callbacks.ModelCheckpoint(self.weight_path, monitor='val_PSNRLoss', save_best_only=True, mode='max', save_weights_only=True, verbose=2)] if save_history: callback_list.append(HistoryCheckpoint(history_fn)) if K.backend() == 'tensorflow': log_dir = './%s_logs/' % self.model_name tensorboard = TensorBoardBatch(log_dir, batch_size=batch_size) callback_list.append(tensorboard) print("Training model : %s" % (self.__class__.__name__)) self.model.fit_generator(img_utils.image_generator(train_path, scale_factor=self.scale_factor, small_train_images=self.type_true_upscaling, batch_size=batch_size), steps_per_epoch=samples_per_epoch // batch_size + 1, epochs=nb_epochs, callbacks=callback_list, validation_data=img_utils.image_generator(validation_path, scale_factor=self.scale_factor, small_train_images=self.type_true_upscaling, batch_size=batch_size), validation_steps=val_count // batch_size + 1) return self.model
def fit(self, batch_size=128, nb_epochs=100, save_history=True, history_fn="Model History.txt") -> Model: """ Standard method to train any of the models. """ samples_per_epoch = img_utils.image_count() val_count = img_utils.val_image_count() if self.model == None: self.create_model(batch_size=batch_size) callback_list = [callbacks.ModelCheckpoint(self.weight_path, monitor='val_PSNRLoss', save_best_only=True, mode='max', save_weights_only=True)] if save_history: callback_list.append(HistoryCheckpoint(history_fn)) print("Training model : %s" % (self.__class__.__name__)) self.model.fit_generator(img_utils.image_generator(train_path, scale_factor=self.scale_factor, small_train_images=self.type_true_upscaling, batch_size=batch_size), samples_per_epoch=samples_per_epoch, nb_epoch=nb_epochs, callbacks=callback_list, validation_data=img_utils.image_generator(validation_path, scale_factor=self.scale_factor, small_train_images=self.type_true_upscaling, batch_size=batch_size), nb_val_samples=val_count) return self.model
def fit(self, scale_factor, weight_fn, batch_size=128, nb_epochs=100, small_train_images=False, save_history=True, history_fn="Model History.txt") -> Model: """ Standard method to train any of the models. """ samples_per_epoch = img_utils.image_count() val_count = img_utils.val_image_count() if self.model == None: self.create_model(batch_size=batch_size) callback_list = [callbacks.ModelCheckpoint(weight_fn, monitor='val_PSNRLoss', save_best_only=True, mode='max', save_weights_only=True),] if save_history: callback_list.append(HistoryCheckpoint(history_fn)) print("Training model : %s" % (self.__class__.__name__)) self.model.fit_generator(img_utils.image_generator(train_path, scale_factor=scale_factor, small_train_images=small_train_images, batch_size=batch_size), samples_per_epoch=samples_per_epoch, nb_epoch=nb_epochs, callbacks=callback_list, validation_data=img_utils.image_generator(validation_path, scale_factor=scale_factor, small_train_images=small_train_images, batch_size=batch_size), nb_val_samples=val_count) return self.model
joint_model.add_loss(l2_weight * teacher_student_loss) # perceptual loss with K.name_scope('perceptual_loss'): perceptual_weight = 2. perceptual_loss = K.sum( K.square( gram_matrix(teacher_output_tensor) - gram_matrix(student_output_tensor))) joint_model.add_loss(perceptual_weight * perceptual_loss) joint_model.compile(optimizer='adam', loss=zero_loss) # train student model using teacher model samples_per_epoch = img_utils.image_count() val_count = img_utils.val_image_count() weight_path = 'weights/joint_model (%s) %dX.h5' % (teacher_model.model_name, scale_factor) history_fn = 'Joint_model_training.txt' train_path = img_utils.output_path validation_path = img_utils.validation_output_path path_X = img_utils.output_path + "X/" path_Y = img_utils.output_path + "y/" callback_list = [ ModelCheckpoint(weight_path, monitor='val_loss', save_best_only=True, mode='min',