對於剛入門ai的童鞋來說,mnist 資料集就相當於剛接觸程式設計時的 「 hello world 」 一樣,具有別樣的意義,後續許多機器學習的演算法都可以用該資料集來進行簡單測試。
**也給出了資料集的格式,但是要手動解析這些資料也是有點複雜的。
以下**的功能是將訓練集和訓練標籤整合到乙個csv檔案裡(測試檔案同),執行完之後你會得到乙個訓練資料檔案和乙個測試資料檔案。
def convert(imgf, labelf, outf, n):
f = open(imgf, "rb")
o = open(outf, "w")
l = open(labelf, "rb")
f.read(16)
l.read(8)
images =
for i in range(n):
image = [ord(l.read(1))]
for j in range(28*28):
for image in images:
o.write(",".join(str(pix) for pix in image)+"\n")
f.close()
o.close()
l.close()
convert("train-images.idx3-ubyte", "train-labels.idx1-ubyte",
"mnist_train.csv", 60000)
convert("t10k-images.idx3-ubyte", "t10k-labels.idx1-ubyte",
"mnist_test.csv", 10000)
轉換後的結果如下,得到乙個二維矩陣,每一行資料就是乙個樣本的標籤+特徵向量。
一共有60000個訓練樣本,還有10000個測試樣本。
以下是我訓練過程使用的乙個例子。
from sklearn import svm
from sklearn import metrics
import numpy as np
import pandas as pd
from time import time
from sklearn.metrics import accuracy_score
traindata = pd.read_csv("mnist_train.csv").values
train_data = traindata[0:50000, 1:]
train_label = traindata[0:50000, 0] # 50000 代表樣本數
testdata = pd.read_csv("mnist_test.csv").values
test_data = testdata[0:10000, 1:]
test_label = testdata[0:10000, 0] # 10000 代表標籤數
# 建立模型
classifier_model = svm.svc(c = 1.0, kernel = 'rbf', degree=3, gamma='auto')
# 訓練
print("train1...")
start = time()
classifier_model.fit(train_data, train_label)
end = time()
t = end - start
print ('train:%dmin%.3fsec' % ((int)(t/60), t-60*(int)(t/60)))
# **
prediction = classifier_model.predict(test_data)
print ("accuracy: " , accuracy_score(prediction,test_label))
MNIST資料集轉為matlab可讀的mat格式
mnist手寫數字影象資料庫 60000個訓練集,10000個測試集,灰度圖,大小均為28 28 資料集 mnist資料庫讀取 讀取mnist資料集中的 train images readmnistimages train images idx3 ubyte 60000個訓練集,大小為28 28 6...
Mnist資料集分類簡單版本
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data 載入資料集 mnist input data.read data sets mnist data one hot true 每個批次的...
MNIST資料集分類簡單版本
from tensorflow.examples.tutorials.mnist import input data 載入資料集mnist input data.read data sets data stu05 mnist data one hot true extracting data stu...