Esempio n. 1
0
    def train(self, niter, piter, siter, save_dir=None, asset_dir=None):
        self.logger.info("Model training starts")

        final_iter = self.start_iter + niter
        max_accuracy = -1
        max_acc_iter = -1

        for iter_ in tqdm_range(self.start_iter, final_iter):
            # train_idx = (iter_ - self.start_iter)//piter
            train_idx = iter_ // piter
            self.run_batch(train_idx)

            if (iter_ + 1) % siter == 0 or iter_ + 1 == final_iter:
                include_discrete = False if train_idx < self.args.ntime else True
                accuracy = self.evaluate(include_discrete=include_discrete)

                self.latent_traversal_gif(path=asset_dir +
                                          '{}.gif'.format(iter_ + 1),
                                          include_discrete=include_discrete)
                if max_accuracy == -1 or max_accuracy < accuracy:
                    self.save(iter_, save_dir)
                    self.logger.info("Save process")
                    max_accuracy = accuracy
                    max_acc_iter = iter_
                print('max_accuracy:', max_accuracy)
                self.logger.info('max_accuracy: ' + str(max_accuracy))
                self.logger.info('max_acc_iter: ' + str(max_acc_iter))
        self.logger.info("Model training ends")
Esempio n. 2
0
    def train(self, niter, piter, siter, save_dir=None, asset_dir=None):
        self.logger.info("Model training starts")

        final_iter = self.start_iter + niter
        max_accuracy = -1

        for iter_ in tqdm_range(self.start_iter, final_iter):
            train_idx = (iter_ - self.start_iter) // piter
            self.run_batch(train_idx)

            if (iter_ + 1) % siter == 0 or iter_ + 1 == final_iter:
                accuracy = self.evaluate()

                self.latent_traversal_gif(path=asset_dir +
                                          '{}.gif'.format(iter_ + 1))
                if max_accuracy == -1 or max_accuracy < accuracy:
                    self.save(iter_, save_dir)
                    self.logger.info("Save process")
                    max_accuracy = accuracy
        self.logger.info("Model training ends")
Esempio n. 3
0
    def train(self, niter, piter, siter, save_dir=None, asset_dir=None):
        self.logger.info("Model training starts")
        current_time = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
        train_log_dir = os.path.join(asset_dir, current_time, 'train')
        # test_log_dir = os.path.join(asset_dir, current_time, '/test')
        train_summary_writer = tf.summary.FileWriter(train_log_dir,
                                                     self.sess.graph)

        final_iter = self.start_iter + niter
        max_accuracy = -1
        max_acc_iter = -1

        for iter_ in tqdm_range(self.start_iter, final_iter):
            train_idx = (iter_ - self.start_iter) // piter
            summary = self.run_batch(train_idx)
            train_summary_writer.add_summary(summary, iter_)

            if (iter_ + 1) % siter == 0 or iter_ + 1 == final_iter:
                if self.args.use_discrete:
                    include_discrete = False if train_idx < self.args.ntime else True
                else:
                    include_discrete = False
                accuracy = self.evaluate(include_discrete=include_discrete)

                self.latent_traversal_gif(path=asset_dir +
                                          '{}.gif'.format(iter_ + 1),
                                          include_discrete=include_discrete)
                if max_accuracy == -1 or max_accuracy < accuracy:
                    self.save(iter_, save_dir)
                    self.logger.info("Save process")
                    max_accuracy = accuracy
                    max_acc_iter = iter_
                self.logger.info('max_accuracy: ' + str(max_accuracy))
                self.logger.info('max_acc_iter: ' + str(max_acc_iter))

                with open(os.path.join(asset_dir, 'acc.txt'), 'a') as f:
                    f.write('iter: '+str(iter_) + ', acc: ' + str(accuracy) + \
                            '; max_iter:' + str(max_acc_iter) + \
                            ', max_acc:' + str(max_accuracy))
        self.logger.info("Model training ends")