deepy/trainers/base.py
def train(self, train_set, valid_set=None, test_set=None, train_size=None):
        """
        Train the model and return costs.
        """
        self._epoch = 0
        while True:
            if self._skip_epochs > 0:
                logging.info("skipping one epoch ...")
                self._skip_epochs -= 1
                self._epoch += 1
                yield None
                continue
            # Test
            if not self._epoch % self.config.test_frequency and test_set:
                try:
                    self._run_test(self._epoch, test_set)
                except KeyboardInterrupt:
                    logging.info('interrupted!')
                    break
            # Validate
            if not self._epoch % self.validation_frequency and valid_set:
                try:

                    if not self._run_valid(self._epoch, valid_set):
                        logging.info('patience elapsed, bailing out')
                        break
                except KeyboardInterrupt:
                    logging.info('interrupted!')
                    break
            # Train one step

            try:
                costs = self._run_train(self._epoch, train_set, train_size)
            except KeyboardInterrupt:
                logging.info('interrupted!')
                break
            # Check costs
            if np.isnan(costs[0][1]):
                logging.info("NaN detected in costs, rollback to last parameters")
                self.set_params(*self.checkpoint)
            else:
                self._epoch += 1
                self.network.epoch_callback()

            yield dict(costs)

        if valid_set and self.config.get("save_best_parameters", True):
            self.set_params(*self.best_params)
        if test_set:
            self._run_test(-1, test_set)
def train(self, train_set, valid_set=None, test_set=None, train_size=None):
        """
        Train the model and return costs.
        """
        self._epoch = 0
        while True:
            if self._skip_epochs > 0:
                logging.info("skipping one epoch ...")
                self._skip_epochs -= 1
                self._epoch += 1
                yield None
                continue
            # Test
            if not self._epoch % self.config.test_frequency and test_set:
                try:
                    self._run_test(self._epoch, test_set)
                except KeyboardInterrupt:
                    logging.info('interrupted!')
                    break
            # Validate
            if not self._epoch % self.validation_frequency and valid_set:
                try:

                    if not self._run_valid(self._epoch, valid_set):
                        logging.info('patience elapsed, bailing out')
                        break
                except KeyboardInterrupt:
                    logging.info('interrupted!')
                    break
            # Train one step

            try:
                costs = self._run_train(self._epoch, train_set, train_size)
            except KeyboardInterrupt:
                logging.info('interrupted!')
                break
            # Check costs
            if np.isnan(costs[0][1]):
                logging.info("NaN detected in costs, rollback to last parameters")
                self.set_params(*self.checkpoint)
            else:
                self._epoch += 1
                self.network.epoch_callback()

            yield dict(costs)

        if valid_set and self.config.get("save_best_parameters", True):
            self.set_params(*self.best_params)
        if test_set:
            self._run_test(-1, test_set)
def train ( self , train_set , valid_set = None , test_set = None , train_size = None ) : self . _epoch = 0 while True : if self . _skip_epochs > 0 : logging . info ( "skipping one epoch ..." ) self . _skip_epochs -= 1 self . _epoch += 1 yield None continue # Test if not self . _epoch % self . config . test_frequency and test_set : try : self . _run_test ( self . _epoch , test_set ) except KeyboardInterrupt : logging . info ( 'interrupted!' ) break # Validate if not self . _epoch % self . validation_frequency and valid_set : try : if not self . _run_valid ( self . _epoch , valid_set ) : logging . info ( 'patience elapsed, bailing out' ) break except KeyboardInterrupt : logging . info ( 'interrupted!' ) break # Train one step try : costs = self . _run_train ( self . _epoch , train_set , train_size ) except KeyboardInterrupt : logging . info ( 'interrupted!' ) break # Check costs if np . isnan ( costs [ 0 ] [ 1 ] ) : logging . info ( "NaN detected in costs, rollback to last parameters" ) self . set_params ( * self . checkpoint ) else : self . _epoch += 1 self . network . epoch_callback ( ) yield dict ( costs ) if valid_set and self . config . get ( "save_best_parameters" , True ) : self . set_params ( * self . best_params ) if test_set : self . _run_test ( - 1 , test_set )
Train the model and return costs.
Train the model and return costs .