最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談PyTorch的數(shù)據(jù)讀取機(jī)制Dataloader與Dataset

 更新時(shí)間:2023年07月29日 09:55:29   作者:木千之  
這篇文章主要介紹了淺談PyTorch的數(shù)據(jù)讀取機(jī)制Dataloader與Dataset,DataLoader的作用是構(gòu)建一個(gè)可迭代的數(shù)據(jù)裝載器,每次執(zhí)行循環(huán)的時(shí)候,就從中讀取一批Batchsize大小的樣本進(jìn)行訓(xùn)練,需要的朋友可以參考下

Dataloader與DataSet數(shù)據(jù)讀取方法

DataLoader與DataSet是PyTorch數(shù)據(jù)讀取的核心。

torch.utils.DataLoader”的作用是構(gòu)建一個(gè)可迭代的數(shù)據(jù)裝載器,每次執(zhí)行循環(huán)的時(shí)候,就從中讀取一批Batchsize大小的樣本進(jìn)行訓(xùn)練。

其主要參數(shù)有五項(xiàng):

  1. dataset:隸屬DataSet類,表示數(shù)據(jù)從哪里讀取以及如何讀取
  2. batchsize:批大小
  3. num_works:是否多進(jìn)程讀取數(shù)據(jù)
  4. shuffle:每個(gè)epoch是否亂序
  5. drop_last:當(dāng)樣本數(shù)不能被batchsize整除時(shí),是否舍棄最后一批數(shù)據(jù)

上述主要參數(shù)中num_works通常在單進(jìn)程時(shí)默認(rèn)為“0”,也可以在支持多進(jìn)程的設(shè)備上設(shè)置為允許的“4 | 8 | 16”等。

shuffle則通常設(shè)置為使用亂序(True),以使得每次數(shù)據(jù)讀取具有隨機(jī)性。

這里頗為重要的是“Epoch、Iteration和Batchsize”之間的關(guān)系:

1)Epoch表示所有訓(xùn)練樣本都已輸入到模型中,記為一個(gè)Epoch;

2)Iteration表示一批樣本輸入到模型中,記為一個(gè)Iteration;

3)Batchsize表示批大小,決定一個(gè)Epoch中有多少個(gè)Iteration。當(dāng)樣本數(shù)可以被Batchsize整除時(shí),三者成立關(guān)系,即全體樣本分成Batchsize分批次輸入模型,每批次記為一次Iteration。

若樣本總數(shù)80個(gè),當(dāng)Batchsize=8時(shí),可以知道“1 Epoch = 10 Iteration”。

若樣本總數(shù)87個(gè),當(dāng)Batchsize-8時(shí),可以知道:1)若“drop_last=True”,則“1 Epoch = 10 Iteration”;2)

若“drop_last=False”,則“1 Epoch = 11 Iteration”,其最后一個(gè)Iteration時(shí)樣本個(gè)數(shù)為7,小于既定Batchsize。

torch.utils.data.Dataset”主要用于定義數(shù)據(jù)從哪里讀取以及如何讀取的問題。其定義為DataSet抽象類,所有自定義的Dataset都需要繼承它,并復(fù)寫“getitem()”內(nèi)構(gòu)函數(shù),該函數(shù)接受一個(gè)索引,并返回一個(gè)樣本。

在這里插入圖片描述

DataLoader與DataSet數(shù)據(jù)讀取機(jī)制

PyTorch的數(shù)據(jù)讀取機(jī)制通常圍繞三個(gè)核心問題展開,即:

讀取哪些數(shù)據(jù)?從哪里讀取數(shù)據(jù)?怎么讀取數(shù)據(jù)?

事實(shí)上,通過在PyCharm中進(jìn)行代碼調(diào)試,我們可以簡要回答上述問題:

1)通過Sampler取樣器按序或隨機(jī)挑選出Batchsize數(shù)量的索引列表;

2)使用DataSet中的data_dir指定硬盤上的數(shù)據(jù)訪問路徑;

3)使用DataSet中自定義的getitem()方法,基于Sampler返回的索引列表讀取相應(yīng)數(shù)據(jù)和標(biāo)簽,并拼接成新的列表數(shù)據(jù)。

在這里插入圖片描述

事實(shí)上,PyTorch的數(shù)據(jù)讀取經(jīng)過了諸多函數(shù)的跳轉(zhuǎn)。在for循環(huán)中首先調(diào)用了“DataLoader”,進(jìn)而使用Sampler、Dataset和getitem解決“數(shù)據(jù)讀哪些?從哪讀?怎么讀?”的問題。

最后,我們提供一份PyTorch中DataLoader數(shù)據(jù)讀取機(jī)制的函數(shù)跳轉(zhuǎn)流程圖,供大家參考學(xué)習(xí)。

在這里插入圖片描述

到此這篇關(guān)于淺談PyTorch的數(shù)據(jù)讀取機(jī)制Dataloader與Dataset的文章就介紹到這了,更多相關(guān)PyTorch的Dataloader與Dataset內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Flask深入了解Jinja2引擎的用法

    Flask深入了解Jinja2引擎的用法

    Jinja2是基于python的模板引擎,功能比較類似于于PHP的smarty,J2ee的Freemarker和velocity。 它能完全支持unicode,并具有集成的沙箱執(zhí)行環(huán)境,應(yīng)用廣泛。jinja2使用BSD授權(quán)
    2022-07-07
  • Python腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換

    Python腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了Python如何通過腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • 基于Python繪制個(gè)人足跡地圖

    基于Python繪制個(gè)人足跡地圖

    這篇文章主要介紹了基于Python繪制個(gè)人足跡地圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python3實(shí)現(xiàn)TCP協(xié)議的簡單服務(wù)器和客戶端案例(分享)

    python3實(shí)現(xiàn)TCP協(xié)議的簡單服務(wù)器和客戶端案例(分享)

    下面小編就為大家?guī)硪黄猵ython3實(shí)現(xiàn)TCP協(xié)議的簡單服務(wù)器和客戶端案例(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Python自動化辦公之定時(shí)發(fā)送郵件的實(shí)現(xiàn)

    Python自動化辦公之定時(shí)發(fā)送郵件的實(shí)現(xiàn)

    python中的schedule模塊可以使我們方便簡單的使用定時(shí)任務(wù),即在特定的時(shí)間自動的執(zhí)行一些任務(wù)的功能,本文將用這一模塊實(shí)現(xiàn)郵件自動發(fā)送,需要的可以參考一下
    2022-05-05
  • python中的?sorted()函數(shù)和sort()方法區(qū)別

    python中的?sorted()函數(shù)和sort()方法區(qū)別

    這篇文章主要介紹了python中的?sorted()函數(shù)和sort()方法,首先看sort()方法,sort方法只能對列表進(jìn)行操作,而sorted可用于所有的可迭代對象。具體內(nèi)容需要的小伙伴可以參考下面章節(jié)
    2022-02-02
  • Django+Ajax+jQuery實(shí)現(xiàn)網(wǎng)頁動態(tài)更新的實(shí)例

    Django+Ajax+jQuery實(shí)現(xiàn)網(wǎng)頁動態(tài)更新的實(shí)例

    今天小編就為大家分享一篇Django+Ajax+jQuery實(shí)現(xiàn)網(wǎng)頁動態(tài)更新的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Tensorflow 多線程設(shè)置方式

    Tensorflow 多線程設(shè)置方式

    今天小編就為大家分享一篇Tensorflow 多線程設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 解決pyecharts運(yùn)行后產(chǎn)生的html文件用瀏覽器打開空白

    解決pyecharts運(yùn)行后產(chǎn)生的html文件用瀏覽器打開空白

    這篇文章主要介紹了解決pyecharts運(yùn)行后產(chǎn)生的html文件用瀏覽器打開空白,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python字符串拼接的常用方法和最佳實(shí)踐

    Python字符串拼接的常用方法和最佳實(shí)踐

    本文詳細(xì)介紹了Pvthon中連接字符串的多種方法,包括使用加號+,逗號,,直接連接以及格式化方法(%和format),強(qiáng)調(diào)了使用join方法的效率優(yōu)勢,并對比了不同連接方式的內(nèi)存管理和性能影響,同時(shí),討論了字符串連接的最佳實(shí)踐,需要的朋友可以參考下
    2025-10-10

最新評論

积石山| 壤塘县| 文水县| 岫岩| 万全县| 永城市| 珠海市| 肇庆市| 兖州市| 武宁县| 延川县| 永昌县| 辉县市| 开鲁县| 临城县| 富顺县| 青河县| 阜城县| 林周县| 宣化县| 信宜市| 偏关县| 常宁市| 云林县| 鹤壁市| 雷山县| 英吉沙县| 南陵县| 茶陵县| 邢台市| 兴国县| 双柏县| 游戏| 沁源县| 海宁市| 防城港市| 曲阳县| 和田县| 吉隆县| 湛江市| 牡丹江市|