def main(config, fileName='data'): testFile(fileName) Start = time.time() msTrain = mnist() msTest = mnist(kind="t10k") # Extract Mnist data trainImg = msTrain.images trainLabel = msTrain.oneHotLabels testImg = msTest.images testLabel = msTest.oneHotLabels # Training data size trainSize = trainImg.shape[0] # Training batch size batchSize = config['batchSize'] # Number of iterations itersNum = config['itersNum'] # Learning rate learningRate = config['learningRate'] # Iter per epoch iterPerEpoch = max((trainSize / batchSize), 1) # Initialize bp network = bpNet(hiddenLayersSize=config['hiddenLayersSize']) # start training model trainA = [] testA = [] print("iterPerEpoch:", iterPerEpoch) #print("Start Model trianing...") for index in range(itersNum): if (index % iterPerEpoch == 0): trainAcc = network.accuracy(trainImg, trainLabel) testAcc = network.accuracy(testImg, testLabel) trainA.append(trainAcc) testA.append(testAcc) print("Train Acc: %.5f Test Acc: %.5f" % (trainAcc, testAcc)) # Get randomly selected index trainIndexs = np.random.choice(trainSize, batchSize) imgs = trainImg[trainIndexs] labels = trainLabel[trainIndexs] network.update(imgs, labels, lr=learningRate) End = time.time() print("BP Time Consuming:%.2fs" % (End - Start)) # Plot g = [trainA, testA] colors = ["blue", "orange"] labels = ["trainAcc", "testAcc"] plt.figure(figsize=(6, 6)) for i in range(len(g)): plt.plot(g[i], colors[i], label=labels[i]) plt.legend(loc=4)
def main(config, fileName='data'): testFile(fileName) Start = time.time() msTrain = mnist() msTest = mnist(kind="t10k") # 提取mnist数据 trainImg = msTrain.images trainLabel = msTrain.oneHotLabels testImg = msTest.images testLabel = msTest.oneHotLabels # 训练数据大小 trainSize = trainImg.shape[0] # 训练批大小 batchSize = config['batchSize'] # 迭代次数 itersNum = config['itersNum'] # 学习率 learningRate = config['learningRate'] # 轮数 iterPerEpoch = max((trainSize / batchSize), 1) # bp初始化 network = bpNet(hiddenLayersSize=config['hiddenLayersSize']) #开始训练模型 trainA = [] testA = [] print("iterPerEpoch:", iterPerEpoch) #print("Start Model trianing...") for index in range(itersNum): if (index % iterPerEpoch == 0): trainAcc = network.accuracy(trainImg, trainLabel) testAcc = network.accuracy(testImg, testLabel) trainA.append(trainAcc) testA.append(testAcc) print("训练精度: %.5f 测试精度: %.5f" % (trainAcc, testAcc)) # 获取随机选取的索引 trainIndexs = np.random.choice(trainSize, batchSize) imgs = trainImg[trainIndexs] labels = trainLabel[trainIndexs] network.update(imgs, labels, lr=learningRate) End = time.time() print("BP Time Consuming:%.2f秒" % (End - Start)) ##作图部分 g = [trainA, testA] colors = ["blue", "orange"] labels = ["trainAcc", "testAcc"] plt.figure(figsize=(6, 6)) for i in range(len(g)): plt.plot(g[i], colors[i], label=labels[i]) plt.legend(loc=4)
def main(): warnings.filterwarnings("ignore") print("Start LR Model training...") msLog = mnist() msTestLog = mnist(kind="t10k") Xtrain = msLog.images Ytrain = msLog.labels Xtest = msTestLog.images Ytest = msTestLog.labels print("Default LR Model loading...") start = time.time() model = LogisticRegression(solver="liblinear") model.fit(Xtrain, Ytrain) y_pred = model.predict(Xtest) sum = 0.0 for i in range(10000): if (y_pred[i] == Ytest[i]): sum += 1 print('Logistics Test set score: %f' % (sum / 10000.)) end = time.time() print("Logit Time consuming:%.2fs" % (end - start)) #89.78s
def main(): warnings.filterwarnings("ignore") print("Start SVM Model loading...") msSVM = mnist() msTestSVM = mnist(kind="t10k") Xtrain = msSVM.images Ytrain = msSVM.labels Xtest = msTestSVM.images Ytest = msTestSVM.labels # Initialize SVM print("Default SVM Model loading...") start = time.time() clf = svm.SVC() clf.fit(Xtrain, Ytrain) predict = clf.predict(Xtest) score = metrics.accuracy_score(Ytest, predict) # Test Acc report = metrics.accuracy_score(Ytest, predict) end = time.time() print("SVM Time consuming:%.2f秒" % (end - start)) print(score) print(report)
def main(): warnings.filterwarnings("ignore") print("Start RandomForest Model training...") msLog =mnist() msTestLog = mnist(kind="t10k") Xtrain = msLog.images Ytrain = msLog.labels Xtest = msTestLog.images Ytest = msTestLog.labels # n_estimators=10,max_features=math.sqrt(n_features), max_depth=None,min_samples_split=2, bootstrap=True print("Default RandomForest model loading...") start = time.time() clf = RandomForestClassifier() clf.fit(Xtrain,Ytrain) predict = clf.predict(Xtest) score = metrics.accuracy_score(Ytest,predict) # Test Accuracy report = metrics.accuracy_score(Ytest,predict) print(score) print(report) end = time.time() print("RF Time consuming:%.2f秒"%(end-start))