成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

模型訓練之數據集操作——矩陣變換 原創

發布于 2025-3-5 11:26
瀏覽
0收藏

“ 在神經網絡模型中,數據格式主要采用張量(tensor)來表示,而具體的載體就是多維數組(n>=1),也就是多維矩陣。”

對神經網絡技術有所了解的人應該都知道,要想訓練一個高性能的神經網絡模型,除了神經網絡本身的設計之外,還一個非常重要的前提就是數據集的質量問題;因此,打造一個高質量的數據集就是一個必不可少的過程。

但具體怎么才能開發一個合格的數據集,這時就離不開對數據集的各種操作;而由于在神經網絡中,數據的主要載體是多維數組,也就是矩陣;因此一般情況下,數據集的數據格式也會以矩陣的形式存在。

而學會對矩陣的操作就是一個必不可少的技能之一;下面我們就以MINST數據集為例,來簡單介紹一下對數據集的操作過程。

數據集操作

MINST數據集是一個經典的數據集,其內容是一個手寫數字識別的數據集;對學習神經網絡技術的人來說,手寫數字識別就相當于編程入門中的Hello World。

因此,了解MINST數據集也是學習神經網絡技術的入門課程之一。

關于MINST數據集的下載方式,基本有兩種選擇;一種是自己手動下載,另一種是從pytorch官網下載,使用PyTorch的數據集API即可下載。

from torchvision import datasets
# 執行以下代碼即可從pytorch官網下載minst數據集到本地data目錄
datasets.MNIST(root='data', train=True, download=True)

MINST數據集主要有四個壓縮文件組成,分別由train開頭的圖片數據(images)和標簽數據(labels);以及t10k開頭的測試圖片數據(t10k-images)和標簽數據(t10k-labels)組成。

模型訓練之數據集操作——矩陣變換-AI.x社區

MNIST數據集的具體內容是由0?9手寫數字圖片和數字標簽所組成的,由60000個訓練樣本和10000個測試樣本組成,每個樣本都是一張28 * 28像素的灰度手寫數字圖片。如下圖所示。

模型訓練之數據集操作——矩陣變換-AI.x社區

由于下載的MINST數據集文件是已經處理好的矩陣格式,并且用二進制格式存儲,因此無法直接使用文本工具打開。

而我們可以使用python提供的numpy工具包,或者pytorch提供的工具包來讀取數據。

import numpy as np
import gzip


with gzip.open("./MNIST/train-images-idx3-ubyte.gz", 'rb') as f:    
  x_train = np.frombuffer(f.read(), np.uint8, offset=16)    
  print("MINST數據集信息打印, 數據集內容:%s, 類型: %s, 長度: %s, 矩陣數據類型: %s, 形狀: %s, 大小:%s, 維度: %s" % (x_train, type(x_train), len(x_train), x_train.dtype, x_train.shape, x_train.size, x_train.ndim))

以上代碼輸出結果如下,可以明顯看出讀取結果是一個一維數組;并且長度為47040000;不是說數據集是六萬個28*28的手寫數字圖片嗎?為什么會是一個47040000長度的一維數組。

模型訓練之數據集操作——矩陣變換-AI.x社區

原因就在于此數據集是經過處理之后的數據集,為了存儲方便使用一維數組最簡單;因此,在使用過程中需要把數據變換成一個三維矩陣,也就是升維的操作;47040000 / (28 * 28) = 60000。

import numpy as np
import gzip
with gzip.open("./MNIST/train-images-idx3-ubyte.gz", 'rb') as f:
    x_train = np.frombuffer(f.read(), np.uint8, offset=16)
    print("MINST數據集信息打印, 數據集內容:%s, 類型: %s, 長度: %s, 矩陣數據類型: %s, 形狀: %s, 大小:%s, 維度: %s" % (x_train, type(x_train), len(x_train),
        x_train.dtype, x_train.shape, x_train.size, x_train.ndim))    
    # 矩陣變換
    x_train = x_train.reshape(-1, 28, 28)
    print("MINST數據集信息變換之后打印, 數據集內容:%s, 類型: %s, 長度: %s, 矩陣數據類型: %s, 形狀: %s, 大小:%s, 維度: %s" % (    x_train, type(x_train), len(x_train),    x_train.dtype, x_train.shape, x_train.size, x_train.ndim))

結果如下圖所示:

模型訓練之數據集操作——矩陣變換-AI.x社區

經過變換之后,打印矩陣并顯示圖片:

import numpy as np
import gzip
from PIL import Image
with gzip.open("./MNIST/train-images-idx3-ubyte.gz", 'rb') as f:
    x_train = np.frombuffer(f.read(), np.uint8, offset=16)    
    print("MINST數據集信息打印, 數據集內容:%s, 類型: %s, 長度: %s, 矩陣數據類型: %s, 形狀: %s, 大小:%s, 維度: %s" % (x_train, type(x_train), len(x_train),          x_train.dtype, x_train.shape, x_train.size, x_train.ndim))    
    x_train = x_train.reshape(-1, 28, 28)    
    print("MINST數據集信息變換之后打印, 數據集內容:%s, 類型: %s, 長度: %s, 矩陣數據類型: %s, 形狀: %s, 大小:%s, 維度: %s" % (    x_train, type(x_train), len(x_train),    x_train.dtype, x_train.shape, x_train.size, x_train.ndim))    
    print(len(x_train), x_train[0])    
    # 轉換為圖片 并顯示    
    pil_img = Image.fromarray(np.uint8(x_train[0]))    
    pil_img.show()

執行以上代碼 用戶即可輸出手寫數字圖片。


本文轉載自公眾號AI探索時代 作者:DFires

原文鏈接:??https://mp.weixin.qq.com/s/IkJanjvu0FleRNvItVQDkg??


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 成人免费观看男女羞羞视频 | 日韩精品一二三 | a级大毛片| 成人一区二| 国产精品久久久久久久久久三级 | 久久99精品久久久久婷婷 | 天天草夜夜骑 | 在线播放中文 | 亚洲高清视频在线 | 国产一区二区精品在线 | 91麻豆产精品久久久久久 | 宅男噜噜噜66一区二区 | 中文字幕成人av | 亚洲一区三区在线观看 | 中文字幕丁香5月 | 一区二区在线不卡 | 色.com| www.精品一区 | 亚洲系列第一页 | 精品久久99 | 9久久婷婷国产综合精品性色 | 欧美国产精品一区二区三区 | 喷潮网站 | 亚洲免费视频网址 | 亚洲少妇综合网 | 一区二区在线不卡 | 在线国产一区二区 | www.夜夜骑| 欧美日韩在线一区二区 | 亚洲成人综合社区 | 久久精品国产一区二区电影 | 在线免费观看黄网 | 一级黄色片在线看 | 国产乱肥老妇国产一区二 | 午夜私人影院在线观看 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 午夜一区二区三区 | 一区二区三区精品在线视频 | 国产精品一区二区在线 | 日韩欧美中文在线 | av中文在线观看 |