Example #1
0
    def test_givenATrainWithoutStepsValidWithoutStepsLoop_whenAlternatingLoop_thenProgressBarIsProperlySet(self):
        params = {'epochs': 2, 'steps': None, 'valid_steps': None}

        with patch("poutyne.framework.progress.ColorProgress") as color_progress_patch:
            self.progression_callback = ProgressionCallback()
            self.progression_callback.set_params(params)
            self.progression_callback.set_model(MagicMock())

            self.progression_callback.on_train_begin(self.an_empty_log)
            color_progress_calls = [call(coloring=self.coloring), call().close_progress_bar()]

            # first train loop
            epoch = 1
            color_progress_calls.extend(self._a_training_loop(epoch, self.num_steps, with_progress_bar=False))

            # first valid loop
            color_progress_calls.extend(self._a_valid_loop(epoch, self.num_steps, with_progress_bar=False))

            # second train loop
            epoch = 2
            color_progress_calls.extend(self._a_training_loop(epoch, self.num_steps, with_progress_bar=False))

            # second valid loop
            color_progress_calls.extend(self._a_valid_loop(epoch, self.num_steps, with_progress_bar=False))

            color_progress_patch.assert_has_calls(color_progress_calls)
Example #2
0
    def test_givenATrainLoop_whenShowingEveryNSteps_thenProgressBarIsProperlySet(
            self):
        params = {
            'epochs': 2,
            'steps': self.num_steps,
            'valid_steps': self.num_valid_steps
        }

        with patch("poutyne.framework.progress.ColorProgress"
                   ) as color_progress_patch:
            self.progression_callback = ProgressionCallback(
                show_every_n_train_steps=2, show_every_n_valid_steps=3)
            self.progression_callback.set_params(params)
            self.progression_callback.set_model(MagicMock())

            self.progression_callback.on_train_begin(self.an_empty_log)
            color_progress_calls = [call(coloring=self.coloring)]

            # first train loop
            epoch = 1
            color_progress_calls.extend(
                self._a_training_loop(epoch,
                                      self.num_steps,
                                      with_progress_bar=True,
                                      show_every_n_steps=2))

            # first valid loop
            color_progress_calls.extend(
                self._a_valid_loop(epoch,
                                   self.num_steps,
                                   with_progress_bar=True,
                                   show_every_n_steps=3))

            # second train loop
            epoch = 2
            color_progress_calls.extend(
                self._a_training_loop(epoch,
                                      self.num_steps,
                                      with_progress_bar=True,
                                      show_every_n_steps=2))

            # second valid loop
            color_progress_calls.extend(
                self._a_valid_loop(epoch,
                                   self.num_steps,
                                   with_progress_bar=True,
                                   show_every_n_steps=3))

            color_progress_patch.assert_has_calls(color_progress_calls)