欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch 自定義數(shù)據(jù)集加載方法

 更新時(shí)間:2019年08月18日 08:51:08   作者:xholes  
今天小編就為大家分享一篇pytorch 自定義數(shù)據(jù)集加載方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

pytorch 官網(wǎng)給出的例子中都是使用了已經(jīng)定義好的特殊數(shù)據(jù)集接口來(lái)加載數(shù)據(jù),而且其使用的數(shù)據(jù)都是官方給出的數(shù)據(jù)。如果我們有自己收集的數(shù)據(jù)集,如何用來(lái)訓(xùn)練網(wǎng)絡(luò)呢?此時(shí)需要我們自己定義好數(shù)據(jù)處理接口。幸運(yùn)的是pytroch給出了一個(gè)數(shù)據(jù)集接口類(lèi)(torch.utils.data.Dataset),可以方便我們繼承并實(shí)現(xiàn)自己的數(shù)據(jù)集接口。

torch.utils.data

torch的這個(gè)文件包含了一些關(guān)于數(shù)據(jù)集處理的類(lèi)。

class torch.utils.data.Dataset: 一個(gè)抽象類(lèi), 所有其他類(lèi)的數(shù)據(jù)集類(lèi)都應(yīng)該是它的子類(lèi)。而且其子類(lèi)必須重載兩個(gè)重要的函數(shù):len(提供數(shù)據(jù)集的大小)、getitem(支持整數(shù)索引)。

class torch.utils.data.TensorDataset: 封裝成tensor的數(shù)據(jù)集,每一個(gè)樣本都通過(guò)索引張量來(lái)獲得。

class torch.utils.data.ConcatDataset: 連接不同的數(shù)據(jù)集以構(gòu)成更大的新數(shù)據(jù)集。

class torch.utils.data.Subset(dataset, indices): 獲取指定一個(gè)索引序列對(duì)應(yīng)的子數(shù)據(jù)集。

class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=<function default_collate>, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None): 數(shù)據(jù)加載器。組合了一個(gè)數(shù)據(jù)集和采樣器,并提供關(guān)于數(shù)據(jù)的迭代器。

torch.utils.data.random_split(dataset, lengths): 按照給定的長(zhǎng)度將數(shù)據(jù)集劃分成沒(méi)有重疊的新數(shù)據(jù)集組合。

class torch.utils.data.Sampler(data_source):所有采樣的器的基類(lèi)。每個(gè)采樣器子類(lèi)都需要提供 __iter__ 方法以方便迭代器進(jìn)行索引 和一個(gè) len方法 以方便返回迭代器的長(zhǎng)度。

class torch.utils.data.SequentialSampler(data_source):順序采樣樣本,始終按照同一個(gè)順序。

class torch.utils.data.RandomSampler(data_source):無(wú)放回地隨機(jī)采樣樣本元素。

class torch.utils.data.SubsetRandomSampler(indices):無(wú)放回地按照給定的索引列表采樣樣本元素。

class torch.utils.data.WeightedRandomSampler(weights, num_samples, replacement=True): 按照給定的概率來(lái)采樣樣本。

class torch.utils.data.BatchSampler(sampler, batch_size, drop_last): 在一個(gè)batch中封裝一個(gè)其他的采樣器。

class torch.utils.data.distributed.DistributedSampler(dataset, num_replicas=None, rank=None):采樣器可以約束數(shù)據(jù)加載進(jìn)數(shù)據(jù)集的子集。

自定義數(shù)據(jù)集

自己定義的數(shù)據(jù)集需要繼承抽象類(lèi)class torch.utils.data.Dataset,并且需要重載兩個(gè)重要的函數(shù):__len__ 和__getitem__。

整個(gè)代碼僅供參考。在__init__中是初始化了該類(lèi)的一些基本參數(shù);__getitem__中是真正讀取數(shù)據(jù)的地方,迭代器通過(guò)索引來(lái)讀取數(shù)據(jù)集中數(shù)據(jù),因此只需要這一個(gè)方法中加入讀取數(shù)據(jù)的相關(guān)功能即可;__len__給出了整個(gè)數(shù)據(jù)集的尺寸大小,迭代器的索引范圍是根據(jù)這個(gè)函數(shù)得來(lái)的。

import torch

class myDataset(torch.nn.data.Dataset):
 def __init__(self, dataSource)
  self.dataSource = dataSource

 def __getitem__(self, index):
  element = self.dataSource[index]
  return element
 def __len__(self):
  return len(self.dataSource)

train_data = myDataset(dataSource)

自定義數(shù)據(jù)集加載器

class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=<function default_collate>, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None): 數(shù)據(jù)加載器。組合了一個(gè)數(shù)據(jù)集和采樣器,并提供關(guān)于數(shù)據(jù)的迭代器。

dataset (Dataset) – 需要加載的數(shù)據(jù)集(可以是自定義或者自帶的數(shù)據(jù)集)。

batch_size – batch的大?。蛇x項(xiàng),默認(rèn)值為1)。

shuffle – 是否在每個(gè)epoch中shuffle整個(gè)數(shù)據(jù)集, 默認(rèn)值為False。

sampler – 定義從數(shù)據(jù)中抽取樣本的策略. 如果指定了, shuffle參數(shù)必須為False。

num_workers – 表示讀取樣本的線(xiàn)程數(shù), 0表示只有主線(xiàn)程。

collate_fn – 合并一個(gè)樣本列表稱(chēng)為一個(gè)batch。

pin_memory – 是否在返回?cái)?shù)據(jù)之前將張量拷貝到CUDA。

drop_last (bool, optional) – 設(shè)置是否丟棄最后一個(gè)不完整的batch,默認(rèn)為False。

timeout – 用來(lái)設(shè)置數(shù)據(jù)讀取的超時(shí)時(shí)間的,但超過(guò)這個(gè)時(shí)間還沒(méi)讀取到數(shù)據(jù)的話(huà)就會(huì)報(bào)錯(cuò)。應(yīng)該為非負(fù)整數(shù)。

train_loader=torch.utils.data.DataLoader(dataset=train_data, batch_size=64, shuffle=True)

以上這篇pytorch 自定義數(shù)據(jù)集加載方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 圖文詳解牛頓迭代算法原理及Python實(shí)現(xiàn)

    圖文詳解牛頓迭代算法原理及Python實(shí)現(xiàn)

    牛頓迭代法又稱(chēng)為牛頓-拉夫遜(拉弗森)方法,它是牛頓在17世紀(jì)提出的一種在實(shí)數(shù)域和復(fù)數(shù)域上近似求解方程的方法。本文將利用圖文詳解牛頓迭代算法原理及實(shí)現(xiàn),需要的可以參考一下
    2022-08-08
  • python更換國(guó)內(nèi)鏡像源三種實(shí)用方法

    python更換國(guó)內(nèi)鏡像源三種實(shí)用方法

    這篇文章主要給大家介紹了關(guān)于python更換國(guó)內(nèi)鏡像源三種實(shí)用方法的相關(guān)資料,更換Python鏡像源可以幫助解決使用pip安裝包時(shí)速度過(guò)慢或無(wú)法連接的問(wèn)題,需要的朋友可以參考下
    2023-09-09
  • python ssh 執(zhí)行shell命令的示例

    python ssh 執(zhí)行shell命令的示例

    這篇文章主要介紹了python ssh 執(zhí)行shell命令的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • python多核處理器算力浪費(fèi)問(wèn)題解決

    python多核處理器算力浪費(fèi)問(wèn)題解決

    這篇文章主要為大家介紹了python多核處理器算力浪費(fèi)現(xiàn)象的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改

    Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改

    這篇文章主要介紹了Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • python:關(guān)于文件加載及處理方式

    python:關(guān)于文件加載及處理方式

    這篇文章主要介紹了python:關(guān)于文件加載及處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 淺談tensorflow使用張量時(shí)的一些注意點(diǎn)tf.concat,tf.reshape,tf.stack

    淺談tensorflow使用張量時(shí)的一些注意點(diǎn)tf.concat,tf.reshape,tf.stack

    這篇文章主要介紹了淺談tensorflow使用張量時(shí)的一些注意點(diǎn)tf.concat,tf.reshape,tf.stack,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python合并列表、字典、字符串、CSV文件、多文件技巧

    Python合并列表、字典、字符串、CSV文件、多文件技巧

    在 Python 中,有多種方法可以實(shí)現(xiàn)數(shù)據(jù)合并,無(wú)論是合并列表、合并字典、合并字符串、合并CSV文件還是合并多個(gè)文件夾中的文件,都可以使用簡(jiǎn)單而強(qiáng)大的Python技巧來(lái)實(shí)現(xiàn),通過(guò)合并數(shù)據(jù),可以更方便地進(jìn)行數(shù)據(jù)處理和分析
    2024-03-03
  • 基于Python+tkinter實(shí)現(xiàn)簡(jiǎn)易計(jì)算器桌面軟件

    基于Python+tkinter實(shí)現(xiàn)簡(jiǎn)易計(jì)算器桌面軟件

    tkinter是Python的標(biāo)準(zhǔn)GUI庫(kù),對(duì)于初學(xué)者來(lái)說(shuō),它非常友好,因?yàn)樗峁┝舜罅康念A(yù)制部件,本文小編就來(lái)帶大家詳細(xì)一下如何利用tkinter制作一個(gè)簡(jiǎn)易計(jì)算器吧
    2023-09-09
  • python里 super類(lèi)的工作原理詳解

    python里 super類(lèi)的工作原理詳解

    這篇文章主要介紹了python里 super類(lèi)的工作原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論