Esempio n. 1
0
            if (iter + 1) % validation_frequency == 0:
                validation_losses = validate_model()
                this_validation_loss = mean(validation_losses)
                print_flush("... " + time.strftime("%c") + ": epoch %i, minibatch %i/%i, validation error %.20f" % (epoch, minibatch_index + 1,
                                                                                                          n_train_batches,this_validation_loss))

                # if we got the best validation score until now
                if this_validation_loss < best_validation_loss:
                    # improve patience if loss improvement is good enough
                    if this_validation_loss < best_validation_loss * improvement_threshold:
                        patience = max(patience, iter * patience_increase)

                    # save best validation score and iteration number
                    best_validation_loss = this_validation_loss
                    best_iter = iter
                    stacked_autoencoder.save(result_path)

            if patience <= iter:
                done_looping = True
                break

    end_time = time.clock()
    print_flush("... optimization complete with best validation score of %.20f on iteration %i" % (best_validation_loss,
                                                                                      best_iter + 1))
    print_flush("... the training code for file " + os.path.split(__file__)[1] + " ran for %.2fm" % \
                                                                       ((end_time - start_time) / 60.))