国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從零構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)————數(shù)據(jù)集篇

這篇具有很好參考價值的文章主要介紹了從零構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)————數(shù)據(jù)集篇。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、數(shù)據(jù)集

如果在此之前,你已經(jīng)對神經(jīng)網(wǎng)絡(luò)的概念有所了解的話,相信你一定明白數(shù)據(jù)集的重要性。好的數(shù)據(jù)集決定著你的模型的好壞,不過這并不是我們這篇文章所要討論的事情。今天我們所要說的是如何導(dǎo)入數(shù)據(jù)集。
從數(shù)據(jù)集的來源不同,我們對數(shù)據(jù)集的導(dǎo)入分為兩種:

1.從第三方庫中導(dǎo)入

使用PyTorch內(nèi)置的數(shù)據(jù)集類(如torchvision.datasets.ImageFolder、torchvision.datasets.CIFAR10等),這些類提供了訪問常見數(shù)據(jù)集的簡單方法。
下面是一個加載CIFAR10數(shù)據(jù)集的示例代碼

import torchvision.datasets as datasets
import torchvision.transforms as transforms

# 定義數(shù)據(jù)預(yù)處理
transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

# 加載CIFAR10數(shù)據(jù)集
trainset = datasets.CIFAR10(root='./data', train=True,
                                        download=True, transform=transform)
testset = datasets.CIFAR10(root='./data', train=False,
                                       download=True, transform=transform)

本著負(fù)責(zé)認(rèn)真的態(tài)度,作者在這里有必要認(rèn)真講解下這段代碼的詳細(xì)含義,不過在這之前我們需要思考一下幾個問題,這對學(xué)習(xí)很重要:
我們導(dǎo)入的數(shù)據(jù)集是圖片數(shù)據(jù)集,怎么將一張圖片用代碼表示?

這時可能會有人說用像素值形成一個矩陣
對的,沒錯確實(shí)如此,
不過只有黑白照片才可以用一個像素矩陣表示,我們生活中大多數(shù)圖片有顏色的,這就需要了解所謂的顏色通道,常見的是RGB三種(當(dāng)然還有其他的顏色通道),我們以RGB為例:
一張彩色的圖片有三個顏色通道-------由三個顏色(red,green,blue)矩陣表示,那很明顯一個像素矩陣是表示不了的,所以得用三個矩陣來表示。
然而,當(dāng)你把圖像用三個矩陣表示出來并輸入計(jì)算機(jī)中,計(jì)算機(jī)怎么知道這是一個彩色的圖片而不是三個黑白圖呢?

這里們需要引入一個新的數(shù)據(jù)形式,張量(tensor);跟標(biāo)量、向量、矩陣這種常見的結(jié)構(gòu)一樣,張量也是一種數(shù)學(xué)中的一種數(shù)據(jù)形式。
在神經(jīng)網(wǎng)絡(luò)中,張量(tensor)是一種常用的數(shù)據(jù)形式,圖像用作張量來存儲。
②該如何對數(shù)據(jù)集進(jìn)行劃分?
因?yàn)槲覀儾荒苣萌康臄?shù)據(jù)集用來訓(xùn)練,所以需要對數(shù)據(jù)集進(jìn)行劃分,我們希望在導(dǎo)入數(shù)據(jù)集中就能自動劃分,而無需手動劃分。

以下是對上述代碼的詳細(xì)解釋:

# 定義數(shù)據(jù)預(yù)處理
transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
     #函數(shù)介紹
     transforms.Compose 函數(shù),用于將多個變換組合成一個可調(diào)用的變換對象。
       預(yù)處理常用的變換包括對圖像進(jìn)行縮放、裁剪、旋轉(zhuǎn)、歸一化等操作,以便更好地適應(yīng)訓(xùn)練模型
     #參數(shù)列表:
     	transforms.ToTensor()表示將圖片轉(zhuǎn)換成向量
     	transforms.Normalize() 則是將每個通道的像素值減去均值(在這里是 0.5)并除以標(biāo)準(zhǔn)差
     	(在這里也是 0.5),以使得每個通道的像素值都在 -11 之間。


# 加載CIFAR10數(shù)據(jù)集
trainset = datasets.CIFAR10(root='./data', train=True,
                                        download=True, transform=transform)
             #以下是參數(shù)列表
	              root:數(shù)據(jù)集下載位置
	              train:表示是否為訓(xùn)練集,true表示是訓(xùn)練集,false的話一般是測試集
	              transform:參數(shù)指定了如何對數(shù)據(jù)進(jìn)行預(yù)處理(或變換),此處參數(shù)指定了在上方所寫的預(yù)處理方式
		#至此,我們得到名為trainset的變量,它是一個包含 CIFAR-10 訓(xùn)練集的 torchvision.datasets.CIFAR10 對象,其中包含了處理后的圖像數(shù)據(jù)和對應(yīng)的標(biāo)簽。

testset = datasets.CIFAR10(root='./data', train=False,
                                       download=True, transform=transform)

接下來,我們試著打印下訓(xùn)練集:
神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集,深度學(xué)習(xí),pytorch,神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí),python,人工智能,機(jī)器學(xué)習(xí)

2.導(dǎo)入本地的數(shù)據(jù)集

如果已經(jīng)下載好了,或者自己標(biāo)注的數(shù)據(jù)集,我們則需要導(dǎo)入本地?cái)?shù)據(jù)集

自定義數(shù)據(jù)集類,這個方法適用于加載自己的數(shù)據(jù)集。下面是一個示例代碼,后面再做詳細(xì)解釋:

import torchvision
LOAD_CIFAR = True
DOWNLOAD_CIFAR = True

train_data = torchvision.datasets.CIFAR10(
    root='./data/',
    train=True,
    transform=torchvision.transforms.ToTensor(),
    download=DOWNLOAD_CIFAR,
)

老樣子,為了更好理解,我們需要考慮幾個問題(不過在這之前我希望您能先自己想想):

①怎么將多個圖片(幾千,甚至幾萬張)導(dǎo)入代碼中,并存儲起來?
我們并不是將圖片都讀入代碼中,我們只是將圖片對應(yīng)的文件地址以及標(biāo)簽對應(yīng)的名字分別寫入圖片列表列表和標(biāo)簽列表中。
具體代碼在本文不在書寫,請參考其他文章。

②圖片數(shù)據(jù)集往往是有標(biāo)注的,但是圖片不能寫文字,所以怎么將標(biāo)注和圖片一一對應(yīng)?
將圖片和標(biāo)注一一對應(yīng)可以通過兩種方式實(shí)現(xiàn):

1.文件名對應(yīng)法

一種常見的方法是將圖片文件名與標(biāo)注文件名保持一致或者有一定的規(guī)律。例如,可以將圖片文件命名為1.jpg,2.jpg,3.jpg等,對應(yīng)的標(biāo)注文件命名為1.txt,2.txt,3.txt等。這樣可以通過文件名的對應(yīng)關(guān)系來將圖片和標(biāo)注一一對應(yīng)。

2.數(shù)據(jù)庫存儲法

另一種方法是將圖片和標(biāo)注數(shù)據(jù)存儲到數(shù)據(jù)庫中。每張圖片都有一個唯一的標(biāo)識符(比如圖片的文件名或者數(shù)據(jù)庫中的id),在數(shù)據(jù)庫中與該圖片對應(yīng)的標(biāo)注數(shù)據(jù)也被存儲在同一行中,這樣可以確保圖片和標(biāo)注一一對應(yīng)

③怎么區(qū)分?jǐn)?shù)據(jù)集和訓(xùn)練集合?
這里需要用到一個函數(shù)

CustomDataset是一個自定義的數(shù)據(jù)集類,它的構(gòu)造函數(shù)需要兩個參數(shù):txt_path和transform。其中,txt_path是包含數(shù)據(jù)集信息的文本文件的路徑,transform是對數(shù)據(jù)集進(jìn)行預(yù)處理的函數(shù)或變換。

train_dataset = CustomDataset(txt_path='./train.txt', transform=transform)
test_dataset = CustomDataset(txt_path='./test.txt', transform=transform)

③怎么使用這些數(shù)據(jù)集?因?yàn)槲覀儾豢赡芤粡堃粡埖恼{(diào)用吧,最好想上方代碼中一樣,交給一個對象管理
開發(fā)者自然想到這個問題,為此提供了一個專門的數(shù)據(jù)類數(shù)據(jù)加載器(DataLoader),這個類很重要,神經(jīng)網(wǎng)絡(luò)訓(xùn)練都是使用這個類,其主要用于將數(shù)據(jù)集分批加載到內(nèi)存中,以便在訓(xùn)練過程中更高效地處理數(shù)據(jù)。
以下是代碼實(shí)例:

dataloader = DataLoader(dataset, batch_size=3, shuffle=True)
#其參數(shù)含義如下
			dataset是一個PyTorch的數(shù)據(jù)集對象,它包含了整個數(shù)據(jù)集。
   		    batch_size=3:每個批次中包含3個數(shù)據(jù)樣本。
    		shuffle=True:每次獲取批次數(shù)據(jù)時是否對數(shù)據(jù)集進(jìn)行隨機(jī)打亂操作,這樣可以增加模型的魯棒性,
    		       防止模型對數(shù)據(jù)的順序產(chǎn)生過擬合。
DataLoader是PyTorch中一個用于加載數(shù)據(jù)的工具類,它能夠?qū)?shù)據(jù)集中的數(shù)據(jù)轉(zhuǎn)換成批次的數(shù)據(jù),方便機(jī)器學(xué)習(xí)模型的訓(xùn)練。

因此,這段代碼的含義是創(chuàng)建一個能夠?qū)ataset中的數(shù)據(jù)分批次加載的數(shù)據(jù)加載器,每個批次包含3個隨機(jī)排列的數(shù)據(jù)樣本。文章來源地址http://www.zghlxwxcb.cn/news/detail-639473.html

到了這里,關(guān)于從零構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)————數(shù)據(jù)集篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 從零開始的神經(jīng)網(wǎng)絡(luò)

    從零開始的神經(jīng)網(wǎng)絡(luò)

    了解如何在沒有框架幫助的情況下構(gòu)建神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識,這些框架可能使其更易于使用 在 Python 中創(chuàng)建具有不同架構(gòu)的復(fù)雜神經(jīng)網(wǎng)絡(luò)應(yīng)該是任何機(jī)器學(xué)習(xí)工程師或數(shù)據(jù)科學(xué)家的標(biāo)準(zhǔn)做法。但是,真正了解神經(jīng)網(wǎng)絡(luò)的工作原理同樣有價值。在本文中,您將了解如何在沒有框

    2024年01月16日
    瀏覽(24)
  • 乳腺癌CT影像數(shù)據(jù)的深度學(xué)習(xí):R語言與ANN神經(jīng)網(wǎng)絡(luò)構(gòu)建高性能分類診斷模型

    乳腺癌是全球最常見的女性惡性腫瘤之一,也影響著男性的健康。據(jù)統(tǒng)計(jì),每年有數(shù)百萬人被診斷出患有乳腺癌[1]。乳腺癌的早期檢測和準(zhǔn)確診斷對于治療和預(yù)后至關(guān)重要。然而,乳腺癌的早期診斷面臨許多挑戰(zhàn),如圖像解讀的主觀性和復(fù)雜性,以及差異化的病理特征[2]。因

    2024年02月14日
    瀏覽(26)
  • 小白的機(jī)器學(xué)習(xí)之路(四)神經(jīng)網(wǎng)絡(luò)的初步認(rèn)識:基于pytorch搭建自己的神經(jīng)網(wǎng)絡(luò)

    小白的機(jī)器學(xué)習(xí)之路(四)神經(jīng)網(wǎng)絡(luò)的初步認(rèn)識:基于pytorch搭建自己的神經(jīng)網(wǎng)絡(luò)

    當(dāng)前交通大數(shù)據(jù)業(yè)務(wù)的需要,需要承擔(dān)一部分算法工作(數(shù)據(jù)處理) 目標(biāo)四: 學(xué)習(xí)深度學(xué)習(xí)基礎(chǔ):了解神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)、反向傳播算法和激活函數(shù)等。 目標(biāo)任務(wù):使用深度學(xué)習(xí)算法構(gòu)建一個簡單的神經(jīng)網(wǎng)絡(luò)模型,并訓(xùn)練模型。 學(xué)習(xí)計(jì)劃小貼士: 每天定期復(fù)習(xí)前幾天的

    2024年02月15日
    瀏覽(20)
  • 從零使用TensorFlow搭建CNN(卷積)神經(jīng)網(wǎng)絡(luò)

    從零使用TensorFlow搭建CNN(卷積)神經(jīng)網(wǎng)絡(luò)

    ?? 寫在前面 ????? 博主介紹:大家好,這里是hyk寫算法了嗎,一枚致力于學(xué)習(xí)算法和人工智能領(lǐng)域的小菜鳥。 ??個人主頁:主頁鏈接(歡迎各位大佬光臨指導(dǎo)) ??近期專欄:機(jī)器學(xué)習(xí)與深度學(xué)習(xí) ???????????????????????LeetCode算法實(shí)例 本節(jié)內(nèi)容主要向大家

    2023年04月22日
    瀏覽(26)
  • 【構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)】

    【構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)】

    構(gòu)建卷積神經(jīng)網(wǎng)絡(luò) 卷積網(wǎng)絡(luò)中的輸入和層與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)有些區(qū)別,需重新設(shè)計(jì),訓(xùn)練模塊基本一致 全連接層:batch 784,各個像素點(diǎn)之間都是沒有聯(lián)系的。 卷積層:batch 1 28 28,各個像素點(diǎn)之間是有聯(lián)系的。 首先讀取數(shù)據(jù) 分別構(gòu)建訓(xùn)練集和測試集(驗(yàn)證集) DataLoader來迭代

    2024年02月13日
    瀏覽(17)
  • pytorch基礎(chǔ) 神經(jīng)網(wǎng)絡(luò)構(gòu)建

    www.ai-xlab.com AI MOOC Torch介紹 Torch是一個開源的機(jī)器學(xué)習(xí)的框架,早在2002年就發(fā) 布了Torch的初版,Torch的編程語言為C和Lua。如今 的Torch7依舊是熱門的深度學(xué)習(xí)框架之一。 www.ai-xlab.com AI MOOC PyTorch介紹 PyTorch是在2017年1月由Facebook推出的。它是經(jīng) 典機(jī)器學(xué)習(xí)庫Torch框架的一個端口,

    2024年01月21日
    瀏覽(33)
  • pytorch-構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)

    構(gòu)建卷積神經(jīng)網(wǎng)絡(luò) 卷積網(wǎng)絡(luò)中的輸入和層與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)有些區(qū)別,需重新設(shè)計(jì),訓(xùn)練模塊基本一致 首先讀取數(shù)據(jù) 分別構(gòu)建訓(xùn)練集和測試集(驗(yàn)證集) DataLoader來迭代取數(shù)據(jù) 卷積網(wǎng)絡(luò)模塊構(gòu)建 一般卷積層,relu層,池化層可以寫成一個套餐 注意卷積最后結(jié)果還是一個特征圖

    2024年02月09日
    瀏覽(21)
  • 【神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可視化】PlotNeuralNet的安裝、測試及創(chuàng)建自己的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可視化圖形

    【神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可視化】PlotNeuralNet的安裝、測試及創(chuàng)建自己的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可視化圖形

    1、下載MikTeX 下載鏈接: MikTeX ( https://miktex.org/download ) 2、下載Git bash 下載鏈接: Git bash ( https://git-scm.com/download/win ) 3、下載PlotNeuralNet 下載鏈接: PlotNeuralNet ( https://github.com/HarisIqbal88/PlotNeuralNet?tab=readme-ov-file ) 1、解壓PlotNeuralNet-master.zip 將下載的PlotNeuralNet-master.zip解壓到當(dāng)前

    2024年04月25日
    瀏覽(59)
  • 神經(jīng)網(wǎng)絡(luò)(NN)網(wǎng)絡(luò)構(gòu)建及模型算法介紹

    神經(jīng)網(wǎng)絡(luò)最主要的作用是作為提取特征的工具,最終的分類并不是作為主要核心。 人工神經(jīng)網(wǎng)絡(luò)也稱為多層感知機(jī),相當(dāng)于將輸入數(shù)據(jù)通過前面多個全連接層網(wǎng)絡(luò)將原輸入特征進(jìn)行了一個非線性變換,將變換后的特征拿到最后一層的分類器去分類。 神經(jīng)網(wǎng)絡(luò)是由多個神經(jīng)元

    2024年02月04日
    瀏覽(15)
  • 構(gòu)建神經(jīng)網(wǎng)絡(luò)的流程是什么?

    構(gòu)建神經(jīng)網(wǎng)絡(luò)涉及多個步驟,從理解問題到設(shè)計(jì)、實(shí)現(xiàn)、訓(xùn)練和驗(yàn)證模型。以下是構(gòu)建神經(jīng)網(wǎng)絡(luò)的典型流程: 定義問題 理解問題域:清晰地定義你想要用神經(jīng)網(wǎng)絡(luò)解決的問題。這可能是分類問題、回歸問題或者其他類型的任務(wù)。 確定輸入和輸出:明確你的網(wǎng)絡(luò)需要接收什么

    2024年01月17日
    瀏覽(11)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包