Exemplo n.º 1
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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))
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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)