def METHOD_NAME(self, b=None):
    self.train_button.disabled = True
    self.initial.clear_output()
    self.updated.clear_output()
    # New instance of model
    with self.log:
        self.demo = TransferLearningDemo.Demo(epochs=self.epoch_slider.value,
                                              batch_size=self.batch_slider.value,
                                              model_name=self.model_dropdown.value,
                                              backend=self.ngraph_dropdown.value,
                                              verbose=0)
    self.progress_bar_callbacks = ProgressBar(self, self.demo)
    initial_pred = np.argmax(self.demo.predict([self.progress_bar_callbacks]), axis=1)
    # Randomly select 9 images that guessed incorrectly or try 1000 times
    i = 0
    while len(self.wrong_guess_indices) < 9 and i < 1000:
        i = i + 1
        randomIndex = random.randint(0, len(initial_pred) - 1)
        if initial_pred[randomIndex] != self.demo.test_class_indices[
                randomIndex] and randomIndex not in self.wrong_guess_indices:
            self.wrong_guess_indices.append(randomIndex)
    # Display initial guesses
    with self.initial:
        print("Initial Predictions")
    self.display_images(initial_pred, self.initial)
    self.demo.train(self.epoch_slider.value, [self.progress_bar_callbacks])
    updated_pred = np.argmax(self.demo.predict([self.progress_bar_callbacks]), axis=1)
    # Display updated guesses
    with self.updated:
        print("Updated Predictions")
    self.display_images(updated_pred, self.updated)
    self.train_button.disabled = False