Esempio n. 1
0
 def train(self, beta1=0.93, beta2=0.999):
     self.training_time = 0
     self.beta1 = beta1
     self.beta2 = beta2
     self.svm = SVM.SVM(trainPath=self.training_file,
                        testPath=self.testing_file,
                        X=self.x_training,
                        y=self.y_training,
                        alpha=self.alpha,
                        n_features=self.n_features,
                        randomize=self.randomize,
                        bulk=self.bulk,
                        split=self.split)
     self.w_init = self.svm.init_weights()
     self.training_time -= (time.time())
     Print.Print.console('ADAM SGD Training ...')
     self.w = self.svm.adam_sgd_train(X=self.x_training,
                                      y=self.y_training,
                                      X_testing=self.x_testing,
                                      y_testing=self.y_testing,
                                      alpha=self.alpha,
                                      epochs=self.epochs,
                                      w_init=self.w_init,
                                      beta1=beta1,
                                      beta2=beta2)
     self.training_time += (time.time())
     return self.svm
 def train_sgd_online(self):
     self.training_time = 0
     self.svm = SVM.SVM(X=self.x_training, y=self.y_training, alpha=self.alpha, n_features=self.n_features, randomize=self.randomize)
     self.training_time -= (time.time())
     if self.auto:
         Print.Print.console('Auto Alpha Mode')
         self.w = self.svm.train_sgd_online(X=self.x_training, y=self.y_training, alpha=self.alpha, epochs=self.epochs)
     if not self.auto:
         Print.Print.console('Manual Alpha Mode')
         self.w = self.svm.manual_sgd_train(X=self.x_training, y=self.y_training, alpha=self.alpha, epochs=self.epochs)
     self.training_time += (time.time())
     return self.w
Esempio n. 3
0
 def train_benchmark_light(self,
                           w_init=[],
                           x_train=[],
                           y_train=[],
                           x_test=[],
                           y_test=[],
                           log_file='',
                           tolerance=0.001,
                           indices_init=[],
                           alpha=0.01):
     self.training_time = 0
     self.effective_epochs = 0
     self.cost = 0
     self.initial_cost = 0
     self.io_time = 0
     self.svm = SVM.SVM(X=x_train,
                        y=y_train,
                        alpha=self.alpha,
                        n_features=self.n_features,
                        randomize=self.randomize,
                        bulk=self.bulk,
                        split=self.split)
     self.training_time -= (time.time())
     if self.auto:
         Print.Print.console('Auto Alpha Mode')
         self.w, self.effective_epochs, self.cost, self.io_time, self.initial_cost = self.svm.train_sgd_light_no_coff(
             X=x_train,
             y=y_train,
             X_test=x_test,
             y_test=y_test,
             alpha=alpha,
             epochs=self.epochs,
             w_init=w_init,
             log_file=log_file,
             tolerance=tolerance,
             indices_init=indices_init)
     if not self.auto:
         Print.Print.console('Manual Alpha Mode')
         self.w, self.effective_epochs, self.cost, self.io_time, self.initial_cost = self.svm.train_sgd_manual_light(
             X=x_train,
             y=y_train,
             alpha=alpha,
             epochs=self.epochs,
             log_file=log_file,
             tolerance=tolerance,
             indices_init=indices_init)
     self.training_time += (time.time())
     self.training_time = self.training_time - self.io_time
     return self.w, self.effective_epochs, self.initial_cost, self.cost, self.training_time
 def train_minibatch_version1(self):
     self.training_time = 0
     self.svm = SVM.SVM(X=self.x_training,
                        y=self.y_training,
                        alpha=self.alpha,
                        n_features=self.n_features,
                        randomize=self.randomize)
     self.training_time -= (time.time())
     Print.Print.console('Minibatch Version 1 Training')
     self.svm.minibatch_sgd_train_version1(X=self.x_training,
                                           y=self.y_training,
                                           alpha=self.alpha,
                                           epochs=self.epochs,
                                           batch_size=self.minibatch_size)
     self.training_time += (time.time())
Esempio n. 5
0
 def train_benchmark_light(self,
                           w_init=[],
                           x_train=[],
                           y_train=[],
                           beta1=0.93,
                           beta2=0.999,
                           x_test=[],
                           y_test=[],
                           log_file='',
                           tolerance=0.001,
                           indices_init=[],
                           alpha=0.01):
     self.training_time = 0
     self.effective_epochs = 0
     self.cost = 0
     self.initial_cost = 0
     self.io_time = 0
     self.beta1 = beta1
     self.beta2 = beta2
     Print.Print.info1("Training with SGD + Adam ...")
     self.training_time = 0
     self.svm = SVM.SVM(X=x_train,
                        y=y_train,
                        alpha=self.alpha,
                        C=self.C,
                        gamma=self.gamma,
                        n_features=self.n_features,
                        randomize=self.randomize)
     w_init = w_init
     indices_init = indices_init
     self.training_time -= (time.time())
     self.w, self.effective_epochs, self.cost, self.io_time, self.initial_cost = self.svm.adam_sgd_train_light(
         X=x_train,
         y=y_train,
         X_test=x_test,
         y_test=y_test,
         alpha=alpha,
         beta1=beta1,
         beta2=beta2,
         epochs=self.epochs,
         w_init=w_init,
         indices_init=indices_init,
         log_file=log_file,
         tolerance=tolerance)
     self.training_time += (time.time())
     self.training_time = self.training_time - self.io_time
     Print.Print.info1("Adam Training Completed !")
     return self.w, self.effective_epochs, self.initial_cost, self.cost, self.training_time
Esempio n. 6
0
 def train(self):
     Print.Print.info1("Training SVM ...")
     self.training_time = 0
     self.svm = SVM.SVM(X=self.x_training,
                        y=self.y_training,
                        eta=self.eta,
                        ld=self.ld,
                        n_features=self.n_features,
                        epochs=self.epochs,
                        randomize=self.randomize)
     self.svm.init_weights()
     self.training_time -= (time.time())
     self.w = self.svm.pegasus_train_cost(X=self.x_training,
                                          y=self.y_training)
     self.training_time += (time.time())
     return self.svm
Esempio n. 7
0
 def train_alpha(self, alpha=0.01):
     self.training_time = 0
     self.svm = SVM.SVM(X=self.x_training,
                        y=self.y_training,
                        alpha=self.alpha,
                        n_features=self.n_features,
                        randomize=self.randomize)
     self.w_init = self.svm.init_weights()
     self.training_time -= (time.time())
     Print.Print.console('Manual Alpha Mode')
     self.w = self.svm.ada_sgd_train(X=self.x_training,
                                     y=self.y_training,
                                     alpha=alpha,
                                     epochs=self.epochs,
                                     w_init=self.w_init)
     self.training_time += (time.time())
     return self.svm
Esempio n. 8
0
 def train_benchmark_light(self,
                           w_init=[],
                           x_train=[],
                           y_train=[],
                           x_test=[],
                           y_test=[],
                           log_file='',
                           tolerance=0.001,
                           indices_init=[],
                           gamma=0.98,
                           alpha=0.01):
     self.training_time = 0
     self.effective_epochs = 0
     self.cost = 0
     self.initial_cost = 0
     self.io_time = 0
     Print.Print.info1("Training with SGD + Momentum ...")
     self.training_time = 0
     self.non_momentum_training_time = 0
     self.svm = SVM.SVM(X=x_train,
                        y=y_train,
                        alpha=self.alpha,
                        C=self.C,
                        gamma=self.gamma,
                        n_features=self.n_features,
                        randomize=self.randomize)
     w_init = w_init
     indices_init = indices_init
     self.training_time -= (time.time())
     self.w, self.effective_epochs, self.cost, self.io_time, self.initial_cost = self.svm.train_sgd_momentum(
         X=x_train,
         y=y_train,
         X_test=x_test,
         y_test=y_test,
         alpha=alpha,
         epochs=self.epochs,
         w_init=w_init,
         indices_init=indices_init,
         log_file=log_file,
         tolerance=tolerance,
         gamma=gamma)
     self.training_time += (time.time())
     self.training_time = self.training_time - self.io_time
     Print.Print.info1("Momentum Training Completed !")
     return self.w, self.effective_epochs, self.initial_cost, self.cost, self.training_time
 def train(self):
     self.training_time = 0
     self.svm = SVM.SVM(X=self.x_training,
                        y=self.y_training,
                        alpha=self.alpha,
                        n_features=self.n_features,
                        randomize=self.randomize)
     self.training_time -= (time.time())
     if self.auto and (not (self.minibatch or self.custom_minibatch
                            or self.custom_minibatch_without_coeff)):
         Print.Print.console('Auto Alpha Mode')
         self.svm.train(X=self.x_training,
                        y=self.y_training,
                        alpha=self.alpha,
                        epochs=self.epochs)
     if not self.auto:
         Print.Print.console('Manual Alpha Mode')
         self.svm.manual_sgd_train(X=self.x_training,
                                   y=self.y_training,
                                   alpha=self.alpha,
                                   epochs=self.epochs)
     if self.minibatch or (not self.auto):
         Print.Print.console('Minibatch SGD Mode')
         self.svm.minibatch_sgd_train(X=self.x_training,
                                      y=self.y_training,
                                      alpha=self.alpha,
                                      epochs=self.epochs,
                                      batch_size=self.minibatch_size)
     if self.custom_minibatch or (not self.auto):
         Print.Print.console('Custom Minibatch SGD Mode')
         self.svm.custom_minibatch_sgd_train(X=self.x_training,
                                             y=self.y_training,
                                             alpha=self.alpha,
                                             epochs=self.epochs,
                                             batch_size=self.minibatch_size)
     self.training_time += (time.time())
     if self.custom_minibatch_without_coeff:
         Print.Print.console('Custom Minibatch SGD Mode')
         self.svm.custom_minibatch_sgd_train_without_coeff(
             X=self.x_training,
             y=self.y_training,
             alpha=self.alpha,
             epochs=self.epochs,
             batch_size=self.minibatch_size)
     return self.svm
Esempio n. 10
0
 def train_benchmark_heavy(self,
                           w_init=[],
                           x_train=[],
                           y_train=[],
                           x_test=[],
                           y_test=[],
                           log_file='',
                           tolerance=0.001,
                           indices_init=[],
                           beta=0.90):
     self.training_time = 0
     self.effective_epochs = 0
     self.cost = 0
     self.initial_cost = 0
     self.beta = beta
     self.io_time = 0
     Print.Print.info1("Training with SGD + RMSProp ...")
     self.training_time = 0
     self.svm = SVM.SVM(X=x_train,
                        y=y_train,
                        alpha=self.alpha,
                        C=self.C,
                        gamma=self.gamma,
                        n_features=self.n_features,
                        randomize=self.randomize)
     w_init = w_init
     indices_init = indices_init
     self.training_time -= (time.time())
     self.w, self.effective_epochs, self.cost, self.io_time, self.initial_cost = self.svm.train_rmsprop_sgd(
         X=x_train,
         y=y_train,
         X_test=x_test,
         y_test=y_test,
         alpha=self.alpha,
         beta=beta,
         epochs=self.epochs,
         w_init=w_init,
         indices_init=indices_init,
         log_file=log_file,
         tolerance=tolerance)
     self.training_time += (time.time())
     self.training_time = self.training_time - self.io_time
     Print.Print.info1("RMSProp Training Completed !")
     return self.w, self.effective_epochs, self.initial_cost, self.cost, self.training_time
Esempio n. 11
0
 def train(self, beta=0.90):
     self.training_time = 0
     self.beta = beta
     self.svm = SVM.SVM(X=self.x_training,
                        y=self.y_training,
                        alpha=self.alpha,
                        n_features=self.n_features,
                        randomize=self.randomize)
     self.w_init = self.svm.init_weights()
     self.training_time -= (time.time())
     Print.Print.console('RMS PROP SGD Training ...')
     self.w = self.svm.rms_prop_sgd_train(X=self.x_training,
                                          y=self.y_training,
                                          alpha=self.alpha,
                                          epochs=self.epochs,
                                          w_init=self.w_init,
                                          beta=beta)
     self.training_time += (time.time())
     return self.svm
Esempio n. 12
0
def case3():
    training_filepath = "/home/vibhatha/data/svm/ijcnn1/ijcnn1_training"
    testing_filepath = "/home/vibhatha/data/svm/ijcnn1/ijcnn1_testing"
    loader = LoadLibsvm.LoadLibSVM(filename=training_filepath, n_features=22)
    x_training, y_training, x_testing, y_testing = loader.load_data()
    svm = SVM.SVM(X=x_training, y=y_training, alpha=1, n_features=22)
    # alpha=0.0003, epochs=1000 #good
    alpha = 0.1
    epochs = 500
    svm.train(X=x_training, y=y_training, alpha=alpha, epochs=epochs)

    y_pred = svm.predict(X=x_testing)

    acc = svm.get_accuracy(y_test=y_testing, y_pred=y_pred)

    print("Accuracy : " + str(acc) + "%")

    fp = open("logs/results.txt", "a")
    fp.write("alpha : " + str(alpha) + ", epochs : " + str(epochs) +
             ", accuracy : " + str(acc) + "%\n")
    fp.close()
Esempio n. 13
0
    def train(self):
        self.training_time = 0
        self.svm = SVM.SVM(X=self.x_training,
                           y=self.y_training,
                           alpha=self.alpha,
                           gamma=self.gamma,
                           degree=self.degree,
                           n_features=self.n_features,
                           randomize=self.randomize)
        self.training_time -= (time.time())
        Print.Print.console('Kernel SGD Mode ')
        Print.Print.info1('\t|            |')
        Print.Print.info1('\t|            |')
        Print.Print.info1('\t|            |')
        Print.Print.info1('\t|            |')
        Print.Print.info1('\t|            |')
        Print.Print.info1('\t\\            /')
        Print.Print.info1('\t \\          /')
        Print.Print.info1('\t  \\        /')
        Print.Print.info1('\t   \\      /')
        Print.Print.info1('\t    \\    /')
        Print.Print.info1('\t     \\  /')
        Print.Print.info1('\t      \\/')
        Print.Print.result2('Kernel : ' + self.kernel)
        Print.Print.result2('Gamma : ' + str(self.gamma))
        Print.Print.result2('Degree : ' + str(self.degree))

        self.svm.train_with_simple_kernel(X=self.x_training,
                                          y=self.y_training,
                                          alpha=self.alpha,
                                          epochs=self.epochs,
                                          kernel=self.kernel)
        # X_train, X_test = self.generate_kernelized_data()
        # self.svm.train_with_kernel(Xorg=self.x_training, X=X_train, y=self.y_training, alpha=self.alpha,
        #                             epochs=self.epochs, kernel=self.kernel)
        # self.svm.custom_minibatch_kernel_sgd_train(X=self.x_training, y=self.y_training, alpha=self.alpha,
        #                                            epochs=self.epochs,batch_size=self.batch_size,
        #                                            kernel=self.kernel, gamma=self.gamma, degree=self.degree)
        self.training_time += (time.time())
        return self.svm
Esempio n. 14
0
 def train(self, gamma=0.98):
     Print.Print.info1("Training with SGD + Momentum ...")
     self.gamma = gamma
     self.training_time = 0
     self.non_momentum_training_time = 0
     self.svm = SVM.SVM(X=self.x_training,
                        y=self.y_training,
                        alpha=self.alpha,
                        C=self.C,
                        gamma=self.gamma,
                        n_features=self.n_features,
                        randomize=self.randomize)
     self.w_init = self.svm.init_weights()
     self.indices_init = self.svm.init_indices(X=self.x_training)
     self.training_time -= (time.time())
     self.w_m = self.svm.train_momentum_cost2(
         X=self.x_training,
         y=self.y_training,
         alpha=self.alpha,
         epochs=self.epochs,
         w_init=self.w_init,
         indices_init=self.indices_init,
         gamma=gamma)
     self.training_time += (time.time())
     Print.Print.info("Momentum Training Completed !")
     Print.Print.info1("Training with SGD ...")
     self.non_momentum_training_time -= (time.time())
     self.w_sgd = self.svm.auto_sgd_train_cost2(
         X=self.x_training,
         y=self.y_training,
         epochs=self.epochs,
         w_init=self.w_init,
         indices_init=self.indices_init)
     self.non_momentum_training_time += (time.time())
     Print.Print.info("SGD Training Completed !")
     return self.svm
Esempio n. 15
0
def case2():
    training_filepath = "/home/vibhatha/data/svm/ijcnn1/ijcnn1.tr"
    testing_filepath = "/home/vibhatha/data/svm/ijcnn1/ijcnn1.t"
    svm = SVM.SVM(trainPath=training_filepath, testPath=testing_filepath)