def _train_model(self, train_set, train_ref, validation_set, validation_ref): """ Train the model. :param train_set: training set :param train_ref: training reference data :param validation_set: validation set :param validation_ref: validation reference data :return: self """ shuff = zip(train_set, train_ref) for i in range(self.finetune_num_epochs): np.random.shuffle(shuff) batches = [ _ for _ in utilities.gen_batches(shuff, self.finetune_batch_size) ] for batch in batches: x_batch, y_batch = zip(*batch) self.tf_session.run(self.train_step, feed_dict={ self.input_data: x_batch, self.input_labels: y_batch, self.keep_prob: self.dropout }) if validation_set is not None: self._run_validation_error_and_summaries( i, validation_set, validation_ref)
def _train_model(self, train_set, train_labels, validation_set, validation_labels): """ Train the model. :param train_set: training set :param train_labels: training labels :param validation_set: validation set :param validation_labels: validation labels :return: self """ for i in range(self.num_epochs): shuff = list(zip(train_set, train_labels)) np.random.shuffle(shuff) batches = [ _ for _ in utilities.gen_batches(shuff, self.batch_size) ] for batch in batches: x_batch, y_batch = zip(*batch) self.tf_session.run(self.train_step, feed_dict={ self.input_data: x_batch, self.input_labels: y_batch }) if validation_set is not None: self._run_validation_error_and_summaries( i, validation_set, validation_labels)
def _train_model(self, train_set, train_labels, validation_set=None, validation_labels=None): """ Train the model. :param train_set: training set :param train_labels: training labels :param validation_set: validation set :param validation_labels: validation labels :return: """ shuff = zip(train_set, train_labels) for i in range(self.num_epochs): np.random.shuffle(shuff) batches = [ _ for _ in utilities.gen_batches(shuff, self.batch_size) ] for batch in batches: x_batch, y_batch = zip(*batch) feed = self._create_feed(x_batch, y_batch, self.dropout) self.tf_session.run(self.train_step, feed_dict=feed) if validation_set is not None: self._run_validation_error_and_summaries( i, validation_set, validation_labels)
def _run_train_step(self, train_set): """ Run a training step. A training step is made by randomly shuffling the training set, divide into batches and run the variable update nodes for each batch. :param train_set: training set :return: self """ np.random.shuffle(train_set) batches = [_ for _ in utilities.gen_batches(train_set, self.batch_size)] updates = [self.w_upd8, self.bh_upd8, self.bv_upd8] for batch in batches: self.tf_session.run(updates, feed_dict=self._create_feed_dict(batch))
def _run_train_step(self, train_set): """ Run a training step. A training step is made by randomly corrupting the training set, randomly shuffling it, divide it into batches and run the optimizer for each batch. :param train_set: training set :return: self """ x_corrupted = self._corrupt_input(train_set) shuff = zip(train_set, x_corrupted) np.random.shuffle(shuff) batches = [_ for _ in utilities.gen_batches(shuff, self.batch_size)] for batch in batches: x_batch, x_corr_batch = zip(*batch) tr_feed = {self.input_data: x_batch, self.input_data_corr: x_corr_batch} self.tf_session.run(self.train_step, feed_dict=tr_feed)
def _train_model(self, train_set, validation_set): """ Train the model. :param train_set: training set :param validation_set: validation set :return: self """ batches = [ _ for _ in utilities.gen_batches(train_set, self.batch_size) ] for i in range(self.num_epochs): for batch in batches: feed = self._create_feed(batch, self.dropout) self.tf_session.run(self.train_step, feed_dict=feed) if i % 5 == 0: if validation_set is not None: self._run_validation_error_and_summaries(i, validation_set)