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

Pytorch使用技巧之Dataloader中的collate_fn參數(shù)詳析

 更新時間:2022年03月17日 10:17:29   作者:政在學習  
collate_fn 參數(shù)的目的主要是為了隨心所欲的轉變數(shù)據(jù)的類型,這個數(shù)據(jù)是用DataLoader加載的,比如img,target,下面這篇文章主要給大家介紹了關于Pytorch使用技巧之Dataloader中的collate_fn參數(shù)的相關資料,需要的朋友可以參考下

以MNIST為例

from torchvision import datasets
mnist = datasets.MNIST(root='./data/', train=True, download=True)
print(mnist[0])

結果

(<PIL.Image.Image image mode=L size=28x28 at 0x196E3F1D898>, 5)

MINIST數(shù)據(jù)集的dataset是由一張圖片和一個label組成的元組

dataloader = torch.utils.data.DataLoader(dataset=mnist, batch_size=2, shuffle=True,collate_fn=lambda x:x)
for each in dataloader:
    print(each)
    break

結果

[(<PIL.Image.Image image mode=L size=28x28 at 0x2CB3B105630>, 0), (<PIL.Image.Image image mode=L size=28x28 at 0x2CB3B105668>, 2)]

collate_fn為lamda x:x時表示對傳入進來的數(shù)據(jù)不做處理

下面自定義collate_fn看看什么效果

def collate(data):
    img = []
    label = []
    for each in data:
        img.append(each[0])
        label.append(each[1])
    return img,label
dataloader = torch.utils.data.DataLoader(dataset=mnist, batch_size=2, shuffle=True,collate_fn=lambda x:collate(x))
for each in dataloader:
    print(each)
    break

結果

([<PIL.Image.Image image mode=L size=28x28 at 0x241433A36D8>, <PIL.Image.Image image mode=L size=28x28 at 0x241433A3710>], [9, 3])

說明:若不設置collate_fn參數(shù)則會使用默認處理函數(shù)

但必須保證傳進來的數(shù)據(jù)都是tensor格式否則會報錯

附:DataLoader完整的參數(shù)表如下:

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)

DataLoader在數(shù)據(jù)集上提供單進程或多進程的迭代器

幾個關鍵的參數(shù)意思:

- shuffle:設置為True的時候,每個世代都會打亂數(shù)據(jù)集

- collate_fn:如何取樣本的,我們可以定義自己的函數(shù)來準確地實現(xiàn)想要的功能

- drop_last:告訴如何處理數(shù)據(jù)集長度除于batch_size余下的數(shù)據(jù)。True就拋棄,否則保留

總結

到此這篇關于Pytorch使用技巧之Dataloader中的collate_fn參數(shù)的文章就介紹到這了,更多相關Dataloader中的collate_fn參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python3 lambda表達式詳解

    python3 lambda表達式詳解

    本文主要給大家詳細介紹的是Python3中的lambda表達式的語法和用法,非常的詳細,有需要的小伙伴可以參考下
    2021-05-05
  • python程序的打包分發(fā)示例詳解

    python程序的打包分發(fā)示例詳解

    這篇文章主要為大家介紹了python程序的打包分發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python算法應用實戰(zhàn)之隊列詳解

    Python算法應用實戰(zhàn)之隊列詳解

    隊列是一種先進先出(First-In-First-Out,F(xiàn)IFO)的數(shù)據(jù)結構。隊列被用在很多地方,比如提交操作系統(tǒng)執(zhí)行的一系列進程、打印任務池等,一些仿真系統(tǒng)用隊列來模擬銀行或雜貨店里排隊的顧客。下面就介紹了Python中隊列的應用實戰(zhàn),需要的可以參考。
    2017-02-02
  • pytorch通過自己的數(shù)據(jù)集訓練Unet網(wǎng)絡架構

    pytorch通過自己的數(shù)據(jù)集訓練Unet網(wǎng)絡架構

    Unet是一個最近比較火的網(wǎng)絡結構。它的理論已經(jīng)有很多大佬在討論了。本文主要從實際操作的層面,講解如何使用pytorch實現(xiàn)unet圖像分割
    2022-12-12
  • Python中的面向對象編程詳解(上)

    Python中的面向對象編程詳解(上)

    這篇文章主要介紹了Python中的面向對象編程詳解(上),本文講解了創(chuàng)建類、實例化類、類屬性、特殊方法內(nèi)建屬性、靜態(tài)變量屬性、實例變量屬性、方法屬性、靜態(tài)方法、類方法等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Python基礎知識方法重寫+文件處理+異常處理

    Python基礎知識方法重寫+文件處理+異常處理

    這篇文章主要介紹了Python基礎知識方法重寫+文件處理+異常處理,這是基礎知識分享的第四篇,看到這里了相信大家前幾篇都學得還不錯吧,下面我們繼續(xù)鞏固Python基礎知識,需要的朋友也可以參考一下
    2022-05-05
  • Python 多線程超詳細到位總結

    Python 多線程超詳細到位總結

    線程在程序中是獨立的、并發(fā)的執(zhí)行流。與分隔的進程相比,進程中線程之間的隔離程度要小,它們共享內(nèi)存、文件句柄和其他進程應有的狀態(tài)。線程的劃分尺度小于進程,使多線程程序的并發(fā)性高。進程在執(zhí)行過程中擁有獨立內(nèi)存單元,而多個線程共享內(nèi)存,從而提升程序運行效率
    2021-11-11
  • 在Python中通過threshold創(chuàng)建mask方式

    在Python中通過threshold創(chuàng)建mask方式

    今天小編就為大家分享一篇在Python中通過threshold創(chuàng)建mask方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • pandas基礎?Series與Dataframe與numpy對二進制文件輸入輸出

    pandas基礎?Series與Dataframe與numpy對二進制文件輸入輸出

    這篇文章主要介紹了pandas基礎Series與Dataframe與numpy對二進制文件輸入輸出,series是一種一維的數(shù)組型對象,它包含了一個值序列和一個數(shù)據(jù)標簽
    2022-07-07
  • Python實現(xiàn)打乒乓小游戲

    Python實現(xiàn)打乒乓小游戲

    這篇文章主要為大家詳細介紹了Python實現(xiàn)打乒乓小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論