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
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())
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
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
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
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
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
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
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()
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
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
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)