def polySVM(X_train, y_train, X_test, y_test): (X_train, y_train), (X_test, y_test) = tools.load_npz(path) t1 = time.time() from sklearn.svm import SVC model = SVC(kernel='poly', probability=False) model.fit(X_train, y_train) train_predict = model.predict(X_train) train_acc = accuracy_score(train_predict, y_train) * 100 print("Accuracy of train data set: %.2f" % train_acc, "%") test_predict = model.predict(X_test) test_acc = accuracy_score(test_predict, y_test) * 100 print("Accuracy of test data set: %.2f" % test_acc, "%") t2 = time.time() cost_time = t2 - t1 print("poly cost time: %.2f" % cost_time)
workpath = os.path.abspath("..") sys.path.append(workpath) from src.pilae import PILAE import src.tools as tools import numpy as np import matplotlib.pyplot as plt data_dict = {'mnist.npz': 784, 'fashionmnist.npz': 784, 'cifar10.npz': 1024, 'cifar10RGB.npz': 3072} DATASET = 'mnist.npz' # 更改数据集只需要替换这里 ## 这个是自己写的读数据方法,知道保证读出来的数据是numpy格式的二维数据就可以 (X_train, y_train), (X_test, y_test) = tools.load_npz("../dataset/" + DATASET) X_train = X_train.reshape(-1, data_dict[DATASET]).astype('float64') / 255. X_test = X_test.reshape(-1, data_dict[DATASET]).astype('float64') / 255. X = np.concatenate([X_train, X_test]) y = np.concatenate([y_train, y_test]) X_train, y_train, X_test, y_test = tools.split_dataset(X[:40000], y[:40000], 0.7) # 实验 找给定数据集(秩一定),测试误差最低时的隐层神经元个数 rank = np.linalg.matrix_rank(X_train) list_train_acc = [] list_test_acc = [] list_num_hidden_units = [] for p in range(100, 40000, 200):
import os workpath = os.path.abspath("..") sys.path.append(workpath) import src.incremental_PILAE as ipilae import src.tools as tools import collections import src.Hog as hg from sklearn import preprocessing import numpy as np import time import multiprocessing import csv num = 0 (X_train, y_train), (X_test, y_test) = tools.load_npz("../dataset/mnist/mnist.npz") X_train = X_train.reshape(-1, 784).astype('float32')/255 X_test = X_test.reshape(-1, 784).astype('float32')/255 hyperParam = ipilae.HParams(batch_size=128, num_classes=10, ae_k=[0.78, 0.3], pil_k=[0.01, 0.01], ae_p=[740, 720], pil_p=[134, 110], ae_layers=2, pil_layers=2, acFunc='sig' )
train_predict = model.predict(X_train) train_acc = accuracy_score(train_predict, y_train) * 100 print("Accuracy of train data set: %.2f" % train_acc, "%") test_predict = model.predict(X_test) test_acc = accuracy_score(test_predict, y_test) * 100 print("Accuracy of test data set: %.2f" % test_acc, "%") t2 = time.time() cost_time = t2 - t1 print("sig cost time: %.2f" % cost_time) path = "../dataset/mnist/mnist.npz" path2 = "../dataset/fashionmnist/fashionmnist.npz" path3 = "../dataset/cifar10/cifar10.npz" (X_train, y_train), (X_test, y_test) = tools.load_npz(path) X_train = X_train.reshape(-1, 784).astype('float32') / 255 X_test = X_test.reshape(-1, 784).astype('float32') / 255 print("===========mnist==========") linearSVM(X_train, y_train, X_test, y_test) rbfSVM(X_train, y_train, X_test, y_test) polySVM(X_train, y_train, X_test, y_test) sigSVM(X_train, y_train, X_test, y_test) (X_train, y_train), (X_test, y_test) = tools.load_npz(path2) X_train = X_train.reshape(-1, 784).astype('float32') / 255 X_test = X_test.reshape(-1, 784).astype('float32') / 255 print("===========fashionmnist==========") linearSVM(X_train, y_train, X_test, y_test) rbfSVM(X_train, y_train, X_test, y_test) polySVM(X_train, y_train, X_test, y_test)
import sys import os workpath = os.path.abspath("..") sys.path.append(workpath) from src.pilae import PILAE import src.tools as tools import src.Hog as hg from sklearn import preprocessing import numpy as np import time import multiprocessing import csv DATASET = 'mnist' (X_train, y_train), (_, _) = tools.load_npz("../dataset/" + DATASET + "/" + DATASET + ".npz") X_train = X_train.reshape(-1, 784).astype('float64') / 255 # X_test = X_test.reshape(-1, 784).astype('float64')/255 X_train = X_train[0:500, :] y_train = y_train[0:500] # f = np.load("../dataset/PMPS/subbands.npz") # X_train = f['X'] # y_train = f['y'] ae_k_list = [0.78, 0.85, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] pil_k = 0.03 alpha_list = [0.8, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9] pil_p = [400, 300] ae_layers = 10
switch = { 'sig': lambda x, p: 1 / (1 + np.exp(-p * x)), 'sin': lambda x, p: np.sin(x), 'relu': relu, 'srelu': lambda x, p: np.log(1 + np.exp(x)), 'tanh': lambda x, p: np.tanh(p * x), } fun = switch.get(func) return fun(tempH, p) if __name__ == '__main__': batchsize = 2000 HiddernNeurons = [600] k = [1.2] # mnist data++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ (X_train, y_train), (X_test, y_test) = tools.load_npz("../dataset/mnist/mnist.npz") X_train = X_train.reshape(-1, 784).astype('float32') / 255 X_test = X_test.reshape(-1, 784).astype('float32') / 255 t1 = time.time() pilae = PILAE(HiddernNeurons, batchsize, k, actFun='sig') pilae.fit(X_train) pilae.predict(X_train, X_test, y_train, y_test) t2 = time.time() print("time cost of training PILAE: %.4f" % (t2 - t1))