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

Pytorch Dataset,TensorDataset,Dataloader,Sampler關(guān)系解讀

 更新時間:2023年09月11日 16:45:34   作者:czg792845236  
這篇文章主要介紹了Pytorch Dataset,TensorDataset,Dataloader,Sampler關(guān)系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Dataloader

Dataloader是數(shù)據(jù)加載器,組合數(shù)據(jù)集和采樣器,并在數(shù)據(jù)集上提供單線程或多線程的迭代器。

所以Dataloader的參數(shù)必然需要指定數(shù)據(jù)集Dataset和采樣器Sampler。

class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, collate_fn=<function default_collate>, pin_memory=False, drop_last=False)
  • dataset (Dataset) – 數(shù)據(jù)集。
  • batch_size (int, optional) – 每個batch加載樣本數(shù)。
  • shuffle (bool, optional) – True則打亂數(shù)據(jù).
  • sampler (Sampler, optional) – 采樣器,如指定則忽略shuffle參數(shù)。
  • num_workers (int, optional) – 用多少個子進程加載數(shù)據(jù)。0表示數(shù)據(jù)將在主進程中加載
  • collate_fn (callable, optional) – 獲取batch數(shù)據(jù)的回調(diào)函數(shù),也就是說可以在這個函數(shù)中修改batch的形式
  • pin_memory (bool, optional) –
  • drop_last (bool, optional) – 如果數(shù)據(jù)集大小不能被batch size整除,則設(shè)置為True后可刪除最后一個不完整的batch。如果設(shè)為False并且數(shù)據(jù)集的大小不能被batch size整除,則最后一個batch將更小。

Dataset和TensorDataset

所有其他數(shù)據(jù)集都應(yīng)該進行子類化。所有子類應(yīng)該override __len__ __getitem__ ,前者提供了數(shù)據(jù)集的大小,后者支持整數(shù)索引,范圍從0到len(self)。

TensorDataset是Dataset的子類,已經(jīng)復(fù)寫了 __len__ __getitem__ 方法,只要傳入張量即可,它通過第一個維度進行索引。

TensorDataset示例

所以TensorDataset說白了就是將輸入的tensors捆綁在一起,然后 __len__ 是任何一個tensor的維度, __getitem__ 表示每個tensor取相同的索引,然后將這個結(jié)果組成一個元組,源碼如下,要好好理解它通過第一個維度進行索引的意思(針對tensors里面的每一個tensor而言)。

class TensorDataset(Dataset):
	def __init__(self,*tensors):
		assert all(tensors[0].size(0)==tensor.size(0) for tensor in tensors)
		self.tensors = tensors
	def __getitem__(self,index):
		return tuple(tensor[index] for tensor in self.tensors)
	def __len__(self):
		return self.tensors[0].size(0)

Sampler和RandomSampler

Sampler與Dataset類似,是采樣器的基礎(chǔ)類。

每個采樣器子類必須提供一個 __iter__ 方法,提供一種迭代數(shù)據(jù)集元素的索引的方法,以及返回迭代器長度的 __len__ 方法。

所以Sampler必然是關(guān)于索引的迭代器,也就是它的輸出是索引。

而RandomSampler與TensorDataset類似,RandomSamper已經(jīng)實現(xiàn)了 __iter__ __len__ 方法,只需要傳入數(shù)據(jù)集即可。

在這里插入圖片描述

猜想理解RandomSampler的實現(xiàn)方式,考慮到這個類實現(xiàn)需要傳入Dataset,所以 __len__ 就是Dataset的 __len__ ,然后 __iter__ 就可以隨便搞一個隨機函數(shù)對range(length)隨機即可。

綜合示例

結(jié)合TensorDataset和RandomSampler使用Dataloader

這里即可理解Dataloader這個數(shù)據(jù)加載器其實就是組合數(shù)據(jù)集和采樣器的組合。

所以那就是先根據(jù)Sampler隨機拿到一個索引,再用這個索引到Dataset中取tensors里每個tensor對應(yīng)索引的數(shù)據(jù)來組成一個元組。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)統(tǒng)計單詞出現(xiàn)的個數(shù)

    Python實現(xiàn)統(tǒng)計單詞出現(xiàn)的個數(shù)

    這篇文章主要介紹了Python實現(xiàn)統(tǒng)計單詞出現(xiàn)的個數(shù),本文給出了實現(xiàn)代碼以及使用方法,需要的朋友可以參考下
    2015-05-05
  • python文件讀寫代碼實例

    python文件讀寫代碼實例

    這篇文章主要介紹了python文件讀寫代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 解決python tkinter界面卡死的問題

    解決python tkinter界面卡死的問題

    今天小編就為大家分享一篇解決python tkinter界面卡死的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python中的集合類型知識講解

    Python中的集合類型知識講解

    這篇文章主要介紹了Python中的集合類型知識講解,是Python入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08
  • Python編程中被忽視的核心技巧總結(jié)

    Python編程中被忽視的核心技巧總結(jié)

    這篇文章主要介紹了一些在?Python?編程中可能被忽視的核心功能,包括默認參數(shù)、海象運算符、*args?和?**kwargs?的使用等,需要的可參考下
    2023-08-08
  • 使用Python實現(xiàn)有趣的鎖屏小工具

    使用Python實現(xiàn)有趣的鎖屏小工具

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)有趣的鎖屏小工具,這樣再也不用擔心因為沒有鎖屏被扣工資啦,打工人快跟隨小編一起學習一下吧
    2023-12-12
  • 使用?PyQt5?設(shè)計下載遠程服務(wù)器日志文件程序的思路

    使用?PyQt5?設(shè)計下載遠程服務(wù)器日志文件程序的思路

    這篇文章主要介紹了使用?PyQt5?設(shè)計下載遠程服務(wù)器日志文件程序,借助 PyQt5 強大的能力,我們可以通過“拖拉拽”的形式很容易地實現(xiàn)桌面端程序,只需要將原來的 Python 腳本綁定到 UI 程序的事件中,就實現(xiàn)了命令行程序到桌面程序的演進,需要的朋友可以參考下
    2022-11-11
  • Python文件夾與文件的操作實現(xiàn)代碼

    Python文件夾與文件的操作實現(xiàn)代碼

    最近在寫的程序頻繁地與文件操作打交道,這塊比較弱,還好在百度上找到一篇不錯的文章,這是原文傳送門,我對原文稍做了些改動
    2014-07-07
  • Python多線程爬蟲簡單示例

    Python多線程爬蟲簡單示例

    這篇文章主要為大家詳細介紹了Python多線程爬蟲簡單示例,感興趣的小伙伴們可以參考一下
    2016-03-03
  • python 從csv讀數(shù)據(jù)到mysql的實例

    python 從csv讀數(shù)據(jù)到mysql的實例

    今天小編就為大家分享一篇python 從csv讀數(shù)據(jù)到mysql的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論