色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

利用Python和PyTorch處理面向?qū)ο蟮臄?shù)據(jù)集

YCqV_FPGA_EETre ? 來(lái)源:XILINX開(kāi)發(fā)者社區(qū) ? 作者:賽靈思開(kāi)發(fā)者 ? 2021-08-25 15:30 ? 次閱讀

本篇是利用 Python 和 PyTorch 處理面向?qū)ο蟮臄?shù)據(jù)集系列博客的第 2 篇。

如需閱讀第 1 篇:原始數(shù)據(jù)和數(shù)據(jù)集,請(qǐng)參閱此處。

我們?cè)诘?1 部分中已定義 MyDataset 類(lèi),現(xiàn)在,讓我們來(lái)例化 MyDataset 對(duì)象

此可迭代對(duì)象是與原始數(shù)據(jù)交互的接口,在整個(gè)訓(xùn)練過(guò)程中都有巨大作用。

第 2 部分:創(chuàng)建數(shù)據(jù)集對(duì)象

■輸入 [9]:

mydataset = MyDataset(isValSet_bool = None, raw_data_path = raw_data_path, norm = False, resize = True, newsize = (64, 64))

以下是該對(duì)象的一些使用示例:

■輸入 [10]:

# 對(duì)象操作示例。

# 此操作用于調(diào)用 method __getitem__ 并從第 6 個(gè)樣本獲取標(biāo)簽

mydataset[6][1]

■輸出 [10]:

0

■輸入 [11]:

# 此操作用于在類(lèi)聲明后打印注釋

MyDataset.__doc__

■輸出 [11]:

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

■輸入 [12]:

# 此操作用于調(diào)用 method __len__

len(mydataset)

■輸出 [12]:

49100

■輸入 [13]:

# 此操作用于觸發(fā) method __str__

print(mydataset)

原始數(shù)據(jù)路徑為 。/raw_data/data_images/《raw samples》

可迭代對(duì)象的重要性

訓(xùn)練期間,將向模型提供多批次樣本。可迭代的 mydataset 是獲得高級(jí)輕量代碼的關(guān)鍵。

以下提供了可迭代對(duì)象的 2 個(gè)使用示例。

示例 1:

我們可以直接獲取第 3 個(gè)樣本張量:

■輸入 [14]:

mydataset.__getitem__(3)[0].shape

■輸出 [14]:

torch.Size([3, 64, 64])

與以下操作作用相同

■輸入 [15]:

mydataset[3][0].shape

■輸出 [15]:

torch.Size([3, 64, 64])

示例 2:

我們可以對(duì)文件夾中的圖像進(jìn)行解析,并移除黑白圖像:

■輸入 [ ]:

# 數(shù)據(jù)集訪問(wèn)示例:創(chuàng)建 1 個(gè)包含標(biāo)簽的新文件,移除黑白圖像

if os.path.exists(raw_data_path + ‘/’+ “l(fā)abels_new.txt”):

os.remove(raw_data_path + ‘/’+ “l(fā)abels_new.txt”)

with open(raw_data_path + ‘/’+ “l(fā)abels_new.txt”, “a”) as myfile:

for item, info in mydataset:

if item != None:

if item.shape[0]==1:

# os.remove(raw_data_path + ‘/’ + info.SampleName)

print(‘C = {}; H = {}; W = {}; info = {}’.format(item.shape[0], item.shape[1], item.shape[2], info))

else:

#print(info.SampleName + ‘ ’ + str(info.SampleLabel))

myfile.write(info.SampleName + ‘ ’ + str(info.SampleLabel) + ‘ ’)

■輸入 [ ]:

# 查找具有非期望格式的樣本

with open(raw_data_path + ‘/’+ “l(fā)abels.txt”, “a”) as myfile:

for item, info in mydataset:

if item != None:

if item.shape[0]!=3:

# os.remove(raw_data_path + ‘/’ + info.SampleName)

print(‘C = {}; H = {}; W = {}; info = {}’.format(item.shape[0], item.shape[1], item.shape[2], info))

修改標(biāo)簽文件后,請(qǐng)務(wù)必更新緩存:

■輸入 [ ]:

if os.path.exists(raw_data_path + ‘/’+ “l(fā)abels_new.txt”):

os.rename(raw_data_path + ‘/’+ “l(fā)abels.txt”, raw_data_path + ‘/’+ “l(fā)abels_orig.txt”)

os.rename(raw_data_path + ‘/’+ “l(fā)abels_new.txt”, raw_data_path + ‘/’+ “l(fā)abels.txt”)

@functools.lru_cache(1)

def getSampleInfoList(raw_data_path):

sample_list = []

with open(str(raw_data_path) + ‘/labels.txt’, “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)

return sample_list

del mydataset

mydataset = MyDataset(isValSet_bool = None, raw_data_path = ‘。./。./raw_data/data_images’, norm = False)

len(mydataset)

您可通過(guò)以下鏈接閱讀了解有關(guān) PyTorch 中的可迭代數(shù)據(jù)庫(kù)的更多信息

https://pytorch.org/docs/stable/data.html

歸一化

應(yīng)對(duì)所有樣本張量計(jì)算平均值和標(biāo)準(zhǔn)差。

如果數(shù)據(jù)集較小,可以嘗試在內(nèi)存中對(duì)其進(jìn)行直接操作:使用 torch.stack 即可創(chuàng)建 1 個(gè)包含所有樣本張量的棧。

可迭代對(duì)象 mydataset 支持簡(jiǎn)潔精美的代碼。

使用“view”即可保留 R、G 和 B 這 3 個(gè)通道,并將其余所有維度合并為 1 個(gè)維度。

使用“mean”即可計(jì)算維度 1 的每個(gè)通道的平均值。

請(qǐng)參閱附件中有關(guān) dim 使用的說(shuō)明。

■輸入 [16]:

imgs = torch.stack([img_t for img_t, _ in mydataset], dim = 3)

■輸入 [17]:

#im_mean = imgs.view(3, -1).mean(dim=1).tolist()

im_mean = imgs.view(3, -1).mean(dim=1)

im_mean

■輸出 [17]:

tensor([0.4735, 0.4502, 0.4002])

■輸入 [18]:

im_std = imgs.view(3, -1).std(dim=1).tolist()

im_std

■輸出 [18]:

[0.28131285309791565, 0.27447444200515747, 0.2874436378479004]

■輸入 [19]:

normalize = transforms.Normalize(mean=[0.4735, 0.4502, 0.4002], std=[0.28131, 0.27447, 0.28744])

# free memory

del imgs

下面,我們將再次構(gòu)建數(shù)據(jù)集對(duì)象,但這次將對(duì)此對(duì)象進(jìn)行歸一化:

■輸入 [21]:

mydataset = MyDataset(isValSet_bool = None, raw_data_path = raw_data_path, norm = True, resize = True, newsize = (64, 64))

由于采用了歸一化,因此張量值被轉(zhuǎn)換至范圍 0..1 之內(nèi),并進(jìn)行剪切操作。

■輸入 [22]:

original = Image.open(‘。./。./raw_data/data_images/img_00009111.JPEG’)

fig, axs = plt.subplots(1, 2, figsize=(10, 3))

axs[0].set_title(‘clipped tensor’)

axs[0].imshow(mydataset[5][0].permute(1,2,0))

axs[1].set_title(‘original PIL image’)

axs[1].imshow(original)

plt.show()

將輸入數(shù)據(jù)剪切到含 RGB 數(shù)據(jù)的 imshow 的有效范圍內(nèi),以 [0..1] 表示浮點(diǎn)值,或者以 [0..255] 表示整數(shù)值。

使用 torchvision.transforms

進(jìn)行預(yù)處理

現(xiàn)在,我們已經(jīng)創(chuàng)建了自己的變換函數(shù)或?qū)ο螅ㄔ居米鳛榧铀賹W(xué)習(xí)曲線的練習(xí)),我建議使用 Torch 模塊 torchvision.transforms:

“此模塊定義了一組可組合式類(lèi)函數(shù)對(duì)象,這些對(duì)象可作為實(shí)參傳遞到數(shù)據(jù)集(如 torchvision.CIFAR10),并在加載數(shù)據(jù)后 __getitem__ 返回?cái)?shù)據(jù)之前,對(duì)數(shù)據(jù)執(zhí)行變換”。

以下列出了可能的變換:

■輸入 [23]:

from torchvision import transforms

dir(transforms)

■輸出 [23]:

[‘CenterCrop’,

‘ColorJitter’,

‘Compose’,

‘FiveCrop’,

‘Grayscale’,

‘Lambda’,

LinearTransformation’,

‘Normalize’,

‘Pad’,

‘RandomAffine’,

‘RandomApply’,

‘RandomChoice’,

‘RandomCrop’,

‘RandomErasing’,

‘RandomGrayscale’,

‘RandomHorizontalFlip’,

‘RandomOrder’,

‘RandomPerspective’,

‘RandomResizedCrop’,

‘RandomRotation’,

‘RandomSizedCrop’,

‘RandomVerticalFlip’,

‘Resize’,

‘Scale’,

‘TenCrop’,

‘ToPILImage’,

‘ToTensor’,

‘__builtins__’,

‘__cached__’,

‘__doc__’,

‘__file__’,

‘__loader__’,

‘__name__’,

‘__package__’,

‘__path__’,

‘__spec__’,

‘functional’,

‘transforms’]

在此示例中,我們使用變換來(lái)執(zhí)行了以下操作:

1) ToTensor - 從 PIL 圖像轉(zhuǎn)換為張量,并將輸出格式定義為 CxHxW

2) Normalize - 將張量歸一化

責(zé)任編輯:haq

聲明:本文內(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)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7134

    瀏覽量

    89408
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    84959
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    808

    瀏覽量

    13331

原文標(biāo)題:開(kāi)發(fā)者分享 | 利用 Python 和 PyTorch 處理面向?qū)ο蟮臄?shù)據(jù)集 - 2:創(chuàng)建數(shù)據(jù)集對(duì)象

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    利用Arm Kleidi技術(shù)實(shí)現(xiàn)PyTorch優(yōu)化

    PyTorch 是一個(gè)廣泛應(yīng)用的開(kāi)源機(jī)器學(xué)習(xí) (ML) 庫(kù)。近年來(lái),Arm 與合作伙伴通力協(xié)作,持續(xù)改進(jìn) PyTorch 的推理性能。本文將詳細(xì)介紹如何利用 Arm Kleidi 技術(shù)提升 Arm
    的頭像 發(fā)表于 12-23 09:19 ?278次閱讀
    <b class='flag-5'>利用</b>Arm Kleidi技術(shù)實(shí)現(xiàn)<b class='flag-5'>PyTorch</b>優(yōu)化

    PyTorch 數(shù)據(jù)加載與處理方法

    PyTorch 是一個(gè)流行的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),它提供了強(qiáng)大的工具來(lái)構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。在構(gòu)建模型之前,一個(gè)重要的步驟是加載和處理數(shù)據(jù)。 1. PyTorch
    的頭像 發(fā)表于 11-05 17:37 ?480次閱讀

    如何在 PyTorch 中訓(xùn)練模型

    準(zhǔn)備好數(shù)據(jù)PyTorch 提供了 torch.utils.data.Dataset 和 torch.utils.data.DataLoader 兩個(gè)類(lèi)來(lái)幫助我們加載和批量處理
    的頭像 發(fā)表于 11-05 17:36 ?403次閱讀

    pycharm配置pytorch運(yùn)行環(huán)境

    在PyCharm中配置PyTorch運(yùn)行環(huán)境主要包括安裝PyCharm、安裝Python(如果尚未安裝)、配置PyTorch環(huán)境以及驗(yàn)證安裝等步驟。以下是詳細(xì)的步驟說(shuō)明: 一、安裝PyCharm
    的頭像 發(fā)表于 08-01 16:25 ?1717次閱讀

    pytorch怎么在pycharm中運(yùn)行

    PyTorch。以下是安裝PyTorch的步驟: 打開(kāi)終端或命令提示符。 根據(jù)你的系統(tǒng)和需求,選擇適當(dāng)?shù)陌惭b命令。例如,如果你使用的是Python 3.8和CUDA 10.2,可以使用以下命令: pip
    的頭像 發(fā)表于 08-01 16:22 ?1548次閱讀

    pycharm如何調(diào)用pytorch

    引言 PyTorch是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)庫(kù),廣泛用于計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理等領(lǐng)域。PyCharm是一個(gè)流行的Python集成開(kāi)發(fā)環(huán)境(IDE),提供了代碼編輯、調(diào)試、測(cè)試等功能。將PyTor
    的頭像 發(fā)表于 08-01 15:41 ?689次閱讀

    pytorch環(huán)境搭建詳細(xì)步驟

    了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),非常適合用于科學(xué)計(jì)算(數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)應(yīng)用、大數(shù)據(jù)處理
    的頭像 發(fā)表于 08-01 15:38 ?933次閱讀

    pytorchpython的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語(yǔ)言之一。Python的易學(xué)易用、豐富的庫(kù)和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語(yǔ)言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?2203次閱讀

    Python建模算法與應(yīng)用

    Python作為一種功能強(qiáng)大、免費(fèi)、開(kāi)源且面向對(duì)象的編程語(yǔ)言,在科學(xué)計(jì)算、數(shù)學(xué)建模、數(shù)據(jù)分析等領(lǐng)域展現(xiàn)出了卓越的性能。其簡(jiǎn)潔的語(yǔ)法、對(duì)動(dòng)態(tài)輸入的支持以及解釋性語(yǔ)言的本質(zhì),使得
    的頭像 發(fā)表于 07-24 10:41 ?636次閱讀

    pytorch如何訓(xùn)練自己的數(shù)據(jù)

    本文將詳細(xì)介紹如何使用PyTorch框架來(lái)訓(xùn)練自己的數(shù)據(jù)。我們將從數(shù)據(jù)準(zhǔn)備、模型構(gòu)建、訓(xùn)練過(guò)程、評(píng)估和測(cè)試等方面進(jìn)行講解。 環(huán)境搭建 首先,我們需要安裝PyTorch。可以通過(guò)訪問(wèn)
    的頭像 發(fā)表于 07-11 10:04 ?588次閱讀

    PyTorch的介紹與使用案例

    PyTorch是一個(gè)基于Python的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),它主要面向深度學(xué)習(xí)和科學(xué)計(jì)算領(lǐng)域。PyTorch由Meta Platforms(原Facebook)的人工智能研究團(tuán)隊(duì)開(kāi)發(fā),并逐漸
    的頭像 發(fā)表于 07-10 14:19 ?450次閱讀

    PyTorch的特性和使用方法

    PyTorch是一個(gè)開(kāi)源的Python機(jī)器學(xué)習(xí)庫(kù),由Meta Platforms(前身為Facebook)的人工智能研究團(tuán)隊(duì)開(kāi)發(fā),并于2017年1月正式推出。PyTorch基于Torch庫(kù),但
    的頭像 發(fā)表于 07-02 14:27 ?617次閱讀

    PyTorch如何訓(xùn)練自己的數(shù)據(jù)

    PyTorch是一個(gè)廣泛使用的深度學(xué)習(xí)框架,它以其靈活性、易用性和強(qiáng)大的動(dòng)態(tài)圖特性而聞名。在訓(xùn)練深度學(xué)習(xí)模型時(shí),數(shù)據(jù)是不可或缺的組成部分。然而,很多時(shí)候,我們可能需要使用自己的數(shù)據(jù)
    的頭像 發(fā)表于 07-02 14:09 ?1962次閱讀

    如何使用PyTorch建立網(wǎng)絡(luò)模型

    PyTorch是一個(gè)基于Python的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),因其易用性、靈活性和強(qiáng)大的動(dòng)態(tài)圖特性,在深度學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用。本文將從PyTorch的基本概念、網(wǎng)絡(luò)模型構(gòu)建、優(yōu)化方法、實(shí)際應(yīng)用等多個(gè)方面,深入探討使用
    的頭像 發(fā)表于 07-02 14:08 ?456次閱讀

    PyTorch與PyCharm的區(qū)別

    在深入探討PyTorch與PyCharm的區(qū)別時(shí),我們首先需要明確兩者在計(jì)算機(jī)科學(xué)和數(shù)據(jù)科學(xué)領(lǐng)域中的不同定位和功能。PyTorch是一個(gè)開(kāi)源的深度學(xué)習(xí)庫(kù),而PyCharm則是一款功能強(qiáng)大
    的頭像 發(fā)表于 07-02 12:36 ?3367次閱讀
    主站蜘蛛池模板: 亚洲色图激情小说 | 亚洲欧美综合视频 | 69夫妻交友网 | 暖暖在线观看播放视频 | 亚洲午夜电影 | 国产蜜臀AV在线一区视频 | 男女交性视频无遮挡全过程 | 好看AV中文字幕在线观看 | 97视频在线观看免费视频 | 国产69精品久久久熟女 | 恋夜直播午夜秀场最新 | 成人在线免费视频播放 | 欧美互交人妖247 | 中国老太太xxx | 中文字幕亚洲欧美在线视频 | 色大姐综合网 | 尤蜜网站在线进入免费 | 亚洲 欧美 国产 视频二区 | 黄色软件色多多 | 中文字幕在线观看亚洲 | 爱人 qvod | 色柚视频网站ww色 | 精品国产乱码久久久久久免费 | 99久久精品费精品国产 | 电影果冻传媒在线播放 | 2019精品国产品在线不卡 | 日本免费xxx| V8成品人视频 | 成人AV无码一二二区视频免费看 | 亚洲免费每日在线观看 | 97无码人妻精品1国产精东影业 | 爱豆剧果冻传媒在线播放 | 国产精品美女久久久网站动漫 | YELLOW日本动漫免费动漫 | 国产亚洲欧洲日韩在线观看 | 亚洲七七久久桃花综合 | 91国在线视频 | 亚洲精品国产熟女久久久 | 蜜芽一区二区国产精品 | 国产在线观看的 | 鲁大师影院在线视频在线观看 |