日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在訓(xùn)練過(guò)程中正確地把數(shù)據(jù)輸入給模型

XILINX開(kāi)發(fā)者社區(qū) ? 來(lái)源:XILINX開(kāi)發(fā)者社區(qū) ? 作者:XILINX開(kāi)發(fā)者社區(qū) ? 2021-07-01 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

機(jī)器學(xué)習(xí)中一個(gè)常見(jiàn)問(wèn)題是判定與數(shù)據(jù)交互的最佳方式。

在本文中,我們將提供一種高效方法,用于完成數(shù)據(jù)的交互、組織以及最終變換(預(yù)處理)。隨后,我們將講解如何在訓(xùn)練過(guò)程中正確地把數(shù)據(jù)輸入給模型。

PyTorch 框架將幫助我們實(shí)現(xiàn)此目標(biāo),我們還將從頭開(kāi)始編寫(xiě)幾個(gè)類(lèi)。PyTorch 可提供更完整的原生類(lèi),但創(chuàng)建我們自己的類(lèi)可幫助我們加速學(xué)習(xí)。

第 1 部分:原始數(shù)據(jù)和數(shù)據(jù)集

首先我們把尚未經(jīng)過(guò)組織的所有樣本稱為“原始數(shù)據(jù)”。

把“數(shù)據(jù)集”定義為現(xiàn)成可用的數(shù)據(jù),即含標(biāo)簽以及基本函數(shù)接口(以便于使用原始數(shù)據(jù)信息)的原始數(shù)據(jù)。

此處我們使用一種簡(jiǎn)單的原始數(shù)據(jù)形式:1 個(gè)包含圖像和標(biāo)簽的文件夾。

但此方法可擴(kuò)展至任意性質(zhì)的樣本(可以是圖片、錄音、視頻等)以及包含標(biāo)簽的文件。

標(biāo)簽文件中的每一行都用于描述 1 個(gè)樣本和相關(guān)標(biāo)簽,格式如下:

file_sample_1 label1

file_sample_2 label2

file_sample_3 label3

(。。。)

當(dāng)能夠完成一些基本信息查詢(已有樣本數(shù)量、返回特定編號(hào)的樣本、預(yù)處理每個(gè)樣本等)時(shí),說(shuō)明我們已從原始數(shù)據(jù)集創(chuàng)建了 1 個(gè)數(shù)據(jù)集。

此方法基于面向?qū)ο?a href="http://m.sdkjxy.cn/v/tag/1315/" target="_blank">編程以及創(chuàng)建用于數(shù)據(jù)處理的 “類(lèi)”。

對(duì)于一組簡(jiǎn)單的圖像和標(biāo)簽而言,此方法可能看上去略顯殺雞用牛刀(實(shí)際上,此用例通常是通過(guò)創(chuàng)建分別用于訓(xùn)練、驗(yàn)證和測(cè)試的獨(dú)立文件夾來(lái)進(jìn)行處理的)。但如果要選擇標(biāo)準(zhǔn)交互方法,則此方法將來(lái)可復(fù)用于多種不同用例,以節(jié)省時(shí)間。

Python 中處理數(shù)據(jù)

在 Python 中所有一切都是對(duì)象:整數(shù)、列表、字典都是如此。

構(gòu)建含標(biāo)準(zhǔn)屬性和方法的“數(shù)據(jù)集”對(duì)象的原因多種多樣。我認(rèn)為,代碼的精致要求就足以合理化這一選擇,但我理解這是品味的問(wèn)題??梢浦残?、速度和代碼模塊化可能是最重要的原因。

在許多示例以及編碼書(shū)籍中,我發(fā)現(xiàn)了面向?qū)ο蟮木幋a(尤以類(lèi)為甚)的其它有趣的功能和優(yōu)勢(shì),總結(jié)如下:

? 類(lèi)可提供繼承

? 繼承可提供復(fù)用

? 繼承可提供數(shù)據(jù)類(lèi)型擴(kuò)展

? 繼承支持多態(tài)現(xiàn)象

? 繼承是面向?qū)ο蟮木幋a的特有功能

■輸入 [1]:

import torch

from torchvision import transforms

to_tensor = transforms.ToTensor()

from collections import namedtuple

import functools

import copy

import csv

from PIL import Image

from matplotlib import pyplot as plt

import numpy as np

import os

import datetime

import torch.optim as optim

在我們的示例中,所有原始樣本都存儲(chǔ)在文件夾中。此文件夾的地址在 raw_data_path 變量中聲明。

■輸入 [2]:

raw_data_path = ‘。/raw_data/data_images’

構(gòu)建模塊

數(shù)據(jù)集接口需要一些函數(shù)和類(lèi)。數(shù)據(jù)集本身就是一個(gè)對(duì)象,因此我們將創(chuàng)建 MyDataset 類(lèi)來(lái)包含所有重要函數(shù)和變量。

首先,我們需要讀取標(biāo)簽文件,然后可對(duì)樣本在其原始格式(此處為 PIL 圖像)以及最終的張量格式應(yīng)用某些變換。

我們需要使用以下函數(shù)來(lái)讀取 1 次標(biāo)簽文件,然后創(chuàng)建包含所有樣本名稱和標(biāo)簽的元組。

內(nèi)存中緩存可提升性能,但如果標(biāo)簽文件發(fā)生更改,請(qǐng)務(wù)必更新緩存內(nèi)容。

■ 輸入 [113]:

DataInfoTuple = namedtuple(‘Sample’,‘SampleName, SampleLabel’)

def myFunc(e):

return e.SampleLabel

# in memory caching decorator: ref https://dbader.org/blog/python-memoization

@functools.lru_cache(1)

def getSampleInfoList(raw_data_path):

sample_list = []

with open(str(raw_data_path) + ‘/labels.txt’, mode = ‘r’) as f:

reader = csv.reader(f, delimiter = ‘ ’)

for i, row in enumerate(reader):

imgname = row[0]

label = int(row[1])

sample_list.append(DataInfoTuple(imgname, label))

sample_list.sort(reverse=False, key=myFunc)

# print(“DataInfoTouple: samples list length = {}”.format(len(sample_list)))

return sample_list

如需直接變換 PIL 圖像,那么以下類(lèi)很實(shí)用。

該類(lèi)僅含 1 種方法:resize。resize 方法能夠改變 PIL 圖像的原始大小,并對(duì)其進(jìn)行重新采樣。如需其它預(yù)處理(翻轉(zhuǎn)、剪切、旋轉(zhuǎn)等),需在此類(lèi)種添加方法。

當(dāng) PIL 圖像完成預(yù)處理后,即可將其轉(zhuǎn)換為張量。此外還可對(duì)張量執(zhí)行進(jìn)一步的處理步驟。

在以下示例種,可以看到這兩種變換:

■ 輸入 [4]:

class PilTransform():

“”“generic transformation of a pil image”“”

def resize(self, img, **kwargs):

img = img.resize(( kwargs.get(‘width’), kwargs.get(‘height’)), resample=Image.NEAREST)

return img

# creation of the object pil_transform, having all powers inherited by the class PilTransform

pil_transform = PilTransform()

以下是類(lèi) PilTransform 的實(shí)操示例:

■ 輸入 [5]:

path = raw_data_path + “/img_00000600.JPEG”

print(path)

im1 = Image.open(path, mode=‘r’)

plt.imshow(im1)

。/raw_data/data_images/img_00000600.JPEG

■ 輸出 [5]:

《matplotlib.image.AxesImage at 0x121046f5588》

■ 輸入 [6]:

im2 = pil_transform.resize(im1, width=128, height=128)

# im2.show()

plt.imshow(im2)

■ 輸出 [6]:

《matplotlib.image.AxesImage at 0x12104b36358》

最后,我們定義一個(gè)類(lèi),用于實(shí)現(xiàn)與原始數(shù)據(jù)的交互。

類(lèi) MyDataset 主要提供了 2 個(gè)方法:

__len__ 可提供原始樣本的數(shù)量。

__getitem__ 可使對(duì)象變?yōu)榭傻?lèi)型,并按張量格式返回請(qǐng)求的樣本(已完成預(yù)處理)。

__getitem__ 步驟:

1) 打開(kāi)來(lái)自文件的樣本。

2) 按樣本的原始格式對(duì)其進(jìn)行預(yù)處理。

3) 將樣本變換為張量。

4) 以張量格式對(duì)樣本進(jìn)行預(yù)處理。

此處添加的預(yù)處理僅作為示例。

此類(lèi)可對(duì)張量進(jìn)行歸一化(求平均值和標(biāo)準(zhǔn)差),這有助于加速訓(xùn)練過(guò)程。

請(qǐng)注意,PIL 圖像由范圍 0-255 內(nèi)的整數(shù)值組成,而張量則為范圍 0-1 內(nèi)的浮點(diǎn)數(shù)矩陣。

該類(lèi)會(huì)返回包含兩個(gè)元素的列表:在位置 [0] 返回張量,在位置 [1] 返回包含 SampleName 和 SampleLabel 的命名元組。

■ 輸入 [109]:

class MyDataset():

“”“Interface class to raw data, providing the total number of samples in the dataset and a preprocessed item”“”

def __init__(self,

isValSet_bool = None,

raw_data_path = ‘。/’,

SampleInfoList = DataInfoTuple,norm = False,

resize = False,

newsize = (32, 32)

):

self.raw_data_path = raw_data_path

self.SampleInfoList = copy.copy(getSampleInfoList(self.raw_data_path))

self.isValSet_bool = isValSet_bool

self.norm = norm

self.resize = resize

self.newsize = newsize

def __str__(self):

return ‘Path of raw data is ’ + self.raw_data_path + ‘/’ + ‘《raw samples》’

def __len__(self):

return len(self.SampleInfoList)

def __getitem__(self, ndx):

SampleInfoList_tup = self.SampleInfoList[ndx]

filepath = self.raw_data_path + ‘/’ + str(SampleInfoList_tup.SampleName)

if os.path.exists(filepath):

img = Image.open(filepath)

# PIL image preprocess (examples)

#resize

if self.resize:

width, height = img.size

if (width 》= height) & (self.newsize[0] 》= self.newsize[1]):

img = pil_transform.resize(img, width=self.newsize[0], height=self.newsize[1])

elif (width 》= height) & (self.newsize[0] 《 self.newsize[1]):

img = pil_transform.resize(img, width=self.newsize[1], height=self.newsize[0])

elif (width 《 height) & (self.newsize[0] 《= self.newsize[1]):

img = pil_transform.resize(img, width=self.newsize[0], height=self.newsize[1])

elif (width 《 height) & (self.newsize[0] 》 self.newsize[1]):

img = pil_transform.resize(img, width=self.newsize[1], height=self.newsize[0])

else:

print(“ERROR”)

# from pil image to tensor

img_t = to_tensor(img)

# tensor preprocess (examples)

#rotation

ratio = img_t.shape[1]/img_t.shape[2]

if ratio 》 1:

img_t = torch.rot90(img_t, 1, [1, 2])

#normalization requires the knowledge of all tensors

if self.norm:

img_t = normalize(img_t)

#return img_t, SampleInfoList_tup

return img_t, SampleInfoList_tup.SampleLabel

else:

print(‘[WARNING] file {} does not exist’.format(str(SampleInfoList_tup.SampleName)))

return None

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    67

    文章

    8567

    瀏覽量

    137261
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1240

    瀏覽量

    26264
  • PIL
    PIL
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    8982
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    813

    瀏覽量

    14930

原文標(biāo)題:開(kāi)發(fā)者分享 | 利用 Python 和 PyTorch 處理面向?qū)ο蟮臄?shù)據(jù)集:1. 原始數(shù)據(jù)和數(shù)據(jù)集

文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    零基礎(chǔ)手寫(xiě)大模型資料2026

    的梯度按比例縮放,確保訓(xùn)練過(guò)程平穩(wěn)。例如在BERT訓(xùn)練中,全局梯度范數(shù)超過(guò)閾值時(shí),會(huì)統(tǒng)一乘以閾值/范數(shù)進(jìn)行裁剪。 3. 分布式訓(xùn)練:突破單機(jī)限制 當(dāng)模型參數(shù)超過(guò)單機(jī)內(nèi)存時(shí),需采用
    發(fā)表于 05-01 17:44

    HM博學(xué)谷狂野AI大模型第四期

    。例如,數(shù)據(jù)并行(DDP)與模型并行是如何在多 GPU 集群中協(xié)同工作,梯度累積與混合精度訓(xùn)練又是如何在節(jié)省顯存的同時(shí)保證計(jì)算精度。更重要的
    發(fā)表于 05-01 17:30

    Edge Impulse 喚醒詞模型訓(xùn)練 | 技術(shù)集結(jié)

    Edgi-Talk開(kāi)始使用邊緣機(jī)器學(xué)習(xí)!目錄EdgeImpulse簡(jiǎn)介創(chuàng)建賬號(hào)錄制數(shù)據(jù)數(shù)據(jù)上傳數(shù)據(jù)分割模型訓(xùn)練
    的頭像 發(fā)表于 04-20 10:05 ?1280次閱讀
    Edge Impulse 喚醒詞<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b> | 技術(shù)集結(jié)

    AI大模型微調(diào)企業(yè)項(xiàng)目實(shí)戰(zhàn)課

    成長(zhǎng)為該領(lǐng)域的資深專(zhuān)家。通過(guò)將企業(yè)積累的高質(zhì)量業(yè)務(wù)問(wèn)答對(duì)、專(zhuān)業(yè)文檔輸入模型,調(diào)整其內(nèi)部的極小部分參數(shù),就能讓模型在保持原有通用能力的基礎(chǔ)上,精準(zhǔn)掌握企業(yè)的特定語(yǔ)感和輸出規(guī)范。這不僅將
    發(fā)表于 04-16 18:48

    【瑞薩AI挑戰(zhàn)賽】手寫(xiě)數(shù)字識(shí)別模型在RA8P1 Titan Board上的部署

    設(shè)置為0.02; 損失函數(shù):稀疏交叉熵?fù)p失(適配MNIST數(shù)據(jù)集的整數(shù)標(biāo)簽); 評(píng)價(jià)指標(biāo):準(zhǔn)確率(Accuracy); 訓(xùn)練輪數(shù)(Epoch):10 訓(xùn)練過(guò)程中將打印每一輪的準(zhǔn)確率情況,同時(shí)會(huì)將每一輪
    發(fā)表于 03-15 20:42

    自動(dòng)駕駛大模型訓(xùn)練數(shù)據(jù)有什么具體要求?

    [首發(fā)于智駕最前沿微信公眾號(hào)]想訓(xùn)練出一個(gè)可以落地的自動(dòng)駕駛大模型,不是簡(jiǎn)單地其提供幾張圖片,幾條規(guī)則就可以的,而是需要非常多的多樣的、真實(shí)的駕駛數(shù)據(jù),從而可以讓大
    的頭像 發(fā)表于 12-26 09:32 ?389次閱讀
    自動(dòng)駕駛大<b class='flag-5'>模型</b>的<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>數(shù)據(jù)</b>有什么具體要求?

    在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)

    , batch_size=512, epochs=20)總結(jié) 這個(gè)核心算法中的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練過(guò)程,是用來(lái)對(duì)MNIST手寫(xiě)數(shù)字圖像進(jìn)行分類(lèi)的。模型將圖像作為輸入,通過(guò)卷積和池化層提取圖像的特征,然后通過(guò)全連接層進(jìn)行分類(lèi)預(yù)
    發(fā)表于 10-22 07:03

    何在vivadoHLS中使用.TLite模型

    本帖欲分享如何在vivadoHLS中使用.TLite模型。在Vivado HLS中導(dǎo)入模型后,需要設(shè)置其輸入和輸出接口以與您的設(shè)計(jì)進(jìn)行適配。 1. 在Vivado HLS項(xiàng)目中導(dǎo)入
    發(fā)表于 10-22 06:29

    借助NVIDIA Megatron-Core大模型訓(xùn)練框架提高顯存使用效率

    隨著模型規(guī)模邁入百億、千億甚至萬(wàn)億參數(shù)級(jí)別,如何在有限顯存中“塞下”訓(xùn)練任務(wù),對(duì)研發(fā)和運(yùn)維團(tuán)隊(duì)都是巨大挑戰(zhàn)。NVIDIA Megatron-Core 作為流行的大模型
    的頭像 發(fā)表于 10-21 10:55 ?1431次閱讀
    借助NVIDIA Megatron-Core大<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b>框架提高顯存使用效率

    何在FPGA部署AI模型

    如果你已經(jīng)在用 MATLAB 做深度學(xué)習(xí),那一定知道它的訓(xùn)練和仿真體驗(yàn)非常絲滑。但當(dāng)模型要真正落地到 FPGA 上時(shí),往往就會(huì)卡?。涸趺?b class='flag-5'>把網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)重優(yōu)雅地搬到硬件里?
    的頭像 發(fā)表于 09-24 10:00 ?4662次閱讀
    如<b class='flag-5'>何在</b>FPGA部署AI<b class='flag-5'>模型</b>

    何在Ray分布式計(jì)算框架下集成NVIDIA Nsight Systems進(jìn)行GPU性能分析

    在大語(yǔ)言模型的強(qiáng)化學(xué)習(xí)訓(xùn)練過(guò)程中,GPU 性能優(yōu)化至關(guān)重要。隨著模型規(guī)模不斷擴(kuò)大,如何高效地分析和優(yōu)化 GPU 性能成為開(kāi)發(fā)者面臨的主要挑戰(zhàn)之一。
    的頭像 發(fā)表于 07-23 10:34 ?2599次閱讀
    如<b class='flag-5'>何在</b>Ray分布式計(jì)算框架下集成NVIDIA Nsight Systems進(jìn)行GPU性能分析

    群暉發(fā)布AI模型全流程存儲(chǔ)解決方案,破局訓(xùn)練效率與數(shù)據(jù)孤島難題

    IDC預(yù)測(cè):從2023年每秒產(chǎn)生4.2PB數(shù)據(jù),到2028年將激增至12.5PB——AI大模型掀起的數(shù)據(jù)海嘯已席卷而來(lái)。企業(yè)爭(zhēng)相投入千億參數(shù)模型訓(xùn)練
    的頭像 發(fā)表于 06-25 16:03 ?842次閱讀
    群暉發(fā)布AI<b class='flag-5'>模型</b>全流程存儲(chǔ)解決方案,破局<b class='flag-5'>訓(xùn)練</b>效率與<b class='flag-5'>數(shù)據(jù)</b>孤島難題

    超聲波清洗機(jī)如何在清洗過(guò)程中減少?gòu)U液和對(duì)環(huán)境的影響?

    超聲波清洗機(jī)如何在清洗過(guò)程中減少?gòu)U液和對(duì)環(huán)境的影響隨著環(huán)保意識(shí)的增強(qiáng),清洗過(guò)程中的廢液處理和環(huán)境保護(hù)變得越來(lái)越重要。超聲波清洗機(jī)作為一種高效的清洗技術(shù),也在不斷發(fā)展以減少?gòu)U液生成和對(duì)環(huán)境的影響。本文
    的頭像 發(fā)表于 06-16 17:01 ?838次閱讀
    超聲波清洗機(jī)如<b class='flag-5'>何在</b>清洗<b class='flag-5'>過(guò)程中</b>減少?gòu)U液和對(duì)環(huán)境的影響?

    瑞芯微模型量化文件構(gòu)建

    模型是一張圖片輸入時(shí),量化文件如上圖所示。但是我現(xiàn)在想量化deepprivacy人臉匿名模型,他的輸入是四個(gè)輸入。該
    發(fā)表于 06-13 09:07

    算力網(wǎng)絡(luò)的“神經(jīng)突觸”:AI互聯(lián)技術(shù)如何重構(gòu)分布式訓(xùn)練范式

    ? 電子發(fā)燒友網(wǎng)綜合報(bào)道 隨著AI技術(shù)迅猛發(fā)展,尤其是大型語(yǔ)言模型的興起,對(duì)于算力的需求呈現(xiàn)出爆炸性增長(zhǎng)。這不僅推動(dòng)了智算中心的建設(shè),還對(duì)網(wǎng)絡(luò)互聯(lián)技術(shù)提出了新的挑戰(zhàn)。 ? 在AI大模型訓(xùn)練過(guò)程中
    的頭像 發(fā)表于 06-08 08:11 ?7791次閱讀
    算力網(wǎng)絡(luò)的“神經(jīng)突觸”:AI互聯(lián)技術(shù)如何重構(gòu)分布式<b class='flag-5'>訓(xùn)練</b>范式
    桓台县| 博罗县| 泗阳县| 温宿县| 渑池县| 新沂市| 江川县| 临海市| 左权县| 富宁县| 常山县| 花莲市| 云南省| 武汉市| 景泰县| 安义县| 丁青县| 宁德市| 黄平县| 旌德县| 广饶县| 兖州市| 简阳市| 曲阳县| 德昌县| 湟源县| 敦煌市| 泸州市| 潮州市| 若羌县| 眉山市| 佛学| 普洱| 仁怀市| 黎川县| 彰武县| 昌黎县| 唐海县| 厦门市| 香港 | 贵德县|