使用NumPy讀取MNIST數(shù)據(jù)的實現(xiàn)代碼示例
NumPy
什么是NumPy
NumPy是 Python 語言的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學函數(shù)庫。主頁為https://numpy.org/。
安裝NumPy
使用pip工具來安裝。
python -m pip install numpy
使用NumPy讀取mnist數(shù)據(jù)
如果直接從網(wǎng)絡上讀取mnist數(shù)據(jù),恭喜你,目前國內(nèi)基本需要一個小時以上。所以建議預先下載mnist數(shù)據(jù)包。
工作環(huán)境
當前我的工作環(huán)境如下:Win10 + Anaconda。使用Spyder4做為IDE。Anaconda的安裝可以參考我的blog。
將數(shù)據(jù)放置到指定目錄
下圖是我當前的工作目錄環(huán)境,因此在C:\Users\sus20\.spyder-py3-dev目錄下,建立子目錄minist。如下圖所示:
將下載好的四個gz文件拷貝到這個目錄下,并將這四個gz文件解壓。如下圖所示:
使用NumPy讀取MNIST
load_mnist 函數(shù)返回兩個數(shù)組,第一個是一個 n * m 維的 NumPy array(images),這里的 n 是樣本行數(shù),m 是特征列數(shù)。訓練數(shù)據(jù)集包含 60,000 個樣本,測試數(shù)據(jù)集包含 10,000 樣本。
在 MNIST 數(shù)據(jù)集中的每張圖片由 28 * 28 個像素點構成,每個像素點用一個灰度值表示。在這里,我們將 28 * 28 的像素展開為一個一維的行向量,這些行向量就是圖片數(shù)組里的行(每行 784 個值, 或者說每行就是代表了一張圖片)。
load_mnist 函數(shù)返回的第二個數(shù)組(labels) 包含了相應的目標變量,也就是手寫數(shù)字的類標簽(整數(shù) 0-9)。
import os import struct import numpy as np def load_mnist(path, kind='train'): """Load MNIST data from `path`""" labels_path = os.path.join(path,'%s-labels-idx1-ubyte'% kind) images_path = os.path.join(path,'%s-images-idx3-ubyte'% kind) with open(labels_path, 'rb') as lbpath: magic, n = struct.unpack('>II',lbpath.read(8)) labels = np.fromfile(lbpath,dtype=np.uint8) #讀入magic是一個文件協(xié)議的描述,也是調(diào)用fromfile 方法將字節(jié)讀入NumPy的array之前在文件緩沖中的item數(shù)(n). with open(images_path, 'rb') as imgpath: magic, num, rows, cols = struct.unpack('>IIII',imgpath.read(16)) images = np.fromfile(imgpath,dtype=np.uint8).reshape(len(labels), 784) return images, labels print(load_mnist("minst_data"))
運行代碼,將得到如下圖結果,說明我們已經(jīng)正確的從本地讀取MNIST數(shù)據(jù)集。
下一步,我們要開始使用TensorFlow讀取MNIST數(shù)據(jù)集。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
簡單了解Django ORM常用字段類型及參數(shù)配置
這篇文章主要介紹了簡單了解Django ORM常用字段類型及參數(shù)配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01python 實現(xiàn)將Numpy數(shù)組保存為圖像
今天小編就為大家分享一篇python 實現(xiàn)將Numpy數(shù)組保存為圖像,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01使用python解析MDX詞典數(shù)據(jù)并保存為Excel文件
MDX(Mobile Dictionary eXchange)是一種常見的詞典文件格式,通常用于在移動設備和電腦之間共享辭典數(shù)據(jù),本文深入探討了從MDX詞典數(shù)據(jù)提取、處理到最終保存為Excel文件的全過程,需要的朋友可以參考下2023-12-12