婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > pytorch 實現多個Dataloader同時訓練

pytorch 實現多個Dataloader同時訓練

熱門標簽:儋州電話機器人 佛山400電話辦理 北京電銷外呼系統加盟 地圖標注面積 所得系統電梯怎樣主板設置外呼 小蘇云呼電話機器人 市場上的電銷機器人 朝陽手機外呼系統 北瀚ai電銷機器人官網手機版

看代碼吧~

如果兩個dataloader的長度不一樣,那就加個:

from itertools import cycle

僅使用zip,迭代器將在長度等于最小數據集的長度時耗盡。 但是,使用cycle時,我們將再次重復最小的數據集,除非迭代器查看最大數據集中的所有樣本。

補充:pytorch技巧:自定義數據集 torch.utils.data.DataLoader 及Dataset的使用

本博客中有可直接運行的例子,便于直觀的理解,在torch環境中運行即可。

1. 數據傳遞機制

在 pytorch 中數據傳遞按一下順序:

1、創建 datasets ,也就是所需要讀取的數據集。

2、把 datasets 傳入DataLoader。

3、DataLoader迭代產生訓練數據提供給模型。

2. torch.utils.data.Dataset

Pytorch提供兩種數據集:

Map式數據集 Iterable式數據集。其中Map式數據集繼承torch.utils.data.Dataset,Iterable式數據集繼承torch.utils.data.IterableDataset。

本文只介紹 Map式數據集。

一個Map式的數據集必須要重寫 __getitem__(self, index)、 __len__(self) 兩個方法,用來表示從索引到樣本的映射(Map)。 __getitem__(self, index)按索引映射到對應的數據, __len__(self)則會返回這個數據集的長度。

基本格式如下:

 import torch.utils.data as data
class VOCDetection(data.Dataset):
    '''
    必須繼承data.Dataset類
    '''
    def __init__(self):
        '''
        在這里進行初始化,一般是初始化文件路徑或文件列表
        '''
        pass
    def __getitem__(self, index):
        '''
        1. 按照index,讀取文件中對應的數據  (讀取一個數據!!!!我們常讀取的數據是圖片,一般我們送入模型的數據成批的,但在這里只是讀取一張圖片,成批后面會說到)
        2. 對讀取到的數據進行數據增強 (數據增強是深度學習中經常用到的,可以提高模型的泛化能力)
        3. 返回數據對 (一般我們要返回 圖片,對應的標簽) 在這里因為我沒有寫完整的代碼,返回值用 0 代替
        '''
        return 0
    def __len__(self):
        '''
        返回數據集的長度
        '''
        return 0

可直接運行的例子:

import torch.utils.data as data
import numpy as np
x = np.array(range(80)).reshape(8, 10) # 模擬輸入, 8個樣本,每個樣本長度為10
y = np.array(range(8))  # 模擬對應樣本的標簽, 8個標簽 
class Mydataset(data.Dataset):
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.idx = list()
        for item in x:
            self.idx.append(item)
        pass
    def __getitem__(self, index):
        input_data = self.idx[index] #可繼續進行數據增強,這里沒有進行數據增強操作
        target = self.y[index]
        return input_data, target
    def __len__(self):
        return len(self.idx)
datasets = Mydataset(x, y)  # 初始化
print(datasets.__len__())  # 調用__len__() 返回數據的長度
for i in range(len(y)):
    input_data, target = datasets.__getitem__(i)  # 調用__getitem__(index) 返回讀取的數據對
    print('input_data%d =' % i, input_data)
    print('target%d = ' % i, target)

結果如下:

3. torch.utils.data.DataLoader

PyTorch中數據讀取的一個重要接口是 torch.utils.data.DataLoader。

該接口主要用來將自定義的數據讀取接口的輸出或者PyTorch已有的數據讀取接口的輸入按照batch_size封裝成Tensor,后續只需要再包裝成Variable即可作為模型的輸入。

torch.utils.data.DataLoader(onject)的可用參數如下:

1.dataset(Dataset): 數據讀取接口,該輸出是torch.utils.data.Dataset類的對象(或者繼承自該類的自定義類的對象)。

2.batch_size (int, optional): 批訓練數據量的大小,根據具體情況設置即可。一般為2的N次方(默認:1)

3.shuffle (bool, optional):是否打亂數據,一般在訓練數據中會采用。(默認:False)

4.sampler (Sampler, optional):從數據集中提取樣本的策略。如果指定,“shuffle”必須為false。我沒有用過,不太了解。

5.batch_sampler (Sampler, optional):和batch_size、shuffle等參數互斥,一般用默認。

6.num_workers:這個參數必須大于等于0,為0時默認使用主線程讀取數據,其他大于0的數表示通過多個進程來讀取數據,可以加快數據讀取速度,一般設置為2的N次方,且小于batch_size(默認:0)

7.collate_fn (callable, optional): 合并樣本清單以形成小批量。用來處理不同情況下的輸入dataset的封裝。

8.pin_memory (bool, optional):如果設置為True,那么data loader將會在返回它們之前,將tensors拷貝到CUDA中的固定內存中.

9.drop_last (bool, optional): 如果數據集大小不能被批大小整除,則設置為“true”以除去最后一個未完成的批。如果“false”那么最后一批將更小。(默認:false)

10.timeout(numeric, optional):設置數據讀取時間限制,超過這個時間還沒讀取到數據的話就會報錯。(默認:0)

11.worker_init_fn (callable, optional): 每個worker初始化函數(默認:None)

可直接運行的例子:

import torch.utils.data as data
import numpy as np
x = np.array(range(80)).reshape(8, 10) # 模擬輸入, 8個樣本,每個樣本長度為10
y = np.array(range(8))  # 模擬對應樣本的標簽, 8個標簽
class Mydataset(data.Dataset):
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.idx = list()
        for item in x:
            self.idx.append(item)
        pass
    def __getitem__(self, index):
        input_data = self.idx[index]
        target = self.y[index]
        return input_data, target
    def __len__(self):
        return len(self.idx)
if __name__ ==('__main__'):
    datasets = Mydataset(x, y)  # 初始化
    dataloader = data.DataLoader(datasets, batch_size=4, num_workers=2) 
    for i, (input_data, target) in enumerate(dataloader):
        print('input_data%d' % i, input_data)
        print('target%d' % i, target)

結果如下:(注意看類別,DataLoader把數據封裝為Tensor)

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

您可能感興趣的文章:
  • pytorch鎖死在dataloader(訓練時卡死)
  • pytorch Dataset,DataLoader產生自定義的訓練數據案例
  • 解決Pytorch dataloader時報錯每個tensor維度不一樣的問題
  • pytorch中DataLoader()過程中遇到的一些問題
  • Pytorch dataloader在加載最后一個batch時卡死的解決
  • Pytorch 如何加速Dataloader提升數據讀取速度
  • pytorch DataLoader的num_workers參數與設置大小詳解

標簽:寧夏 云南 金融催收 定西 商丘 龍巖 江蘇 酒泉

巨人網絡通訊聲明:本文標題《pytorch 實現多個Dataloader同時訓練》,本文關鍵詞  pytorch,實現,多個,Dataloader,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch 實現多個Dataloader同時訓練》相關的同類信息!
  • 本頁收集關于pytorch 實現多個Dataloader同時訓練的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人国产一区二区| 亚洲欧美aⅴ...| 成人精品视频一区二区三区 | 99精品在线观看视频| 加勒比av一区二区| 欧美日韩电影一区| 精品一区二区三区久久| 国产欧美一区二区精品性| 成人丝袜高跟foot| ...中文天堂在线一区| 欧美三级三级三级| 9色porny自拍视频一区二区| 午夜电影网亚洲视频| 欧美成人精品1314www| 欧美在线观看一区二区| 国产在线精品免费| 夜夜亚洲天天久久| 亚洲视频一二三| 精品久久人人做人人爰| 欧美日韩另类国产亚洲欧美一级| 国产盗摄一区二区三区| 日韩激情在线观看| 亚洲h精品动漫在线观看| 中文字幕亚洲精品在线观看| 欧美不卡一二三| 欧美一级欧美三级在线观看| 色天天综合色天天久久| av欧美精品.com| 国产伦精品一区二区三区视频青涩| 亚洲一区二区三区四区在线| 一区二区三区四区亚洲| 欧美三片在线视频观看| a亚洲天堂av| 激情综合五月婷婷| 天堂在线一区二区| 九九国产精品视频| 毛片不卡一区二区| 久久国内精品自在自线400部| 九色综合国产一区二区三区| 奇米四色…亚洲| 午夜欧美电影在线观看| 国产在线精品一区二区不卡了| 免费看欧美美女黄的网站| 国产一区二区福利| 国模套图日韩精品一区二区| 九一九一国产精品| 波多野结衣欧美| 97国产一区二区| 欧美精品一二三四| 欧美成人a∨高清免费观看| 欧美日韩精品福利| 精品免费视频.| 久久亚洲二区三区| 日韩一区二区三| 亚洲欧洲精品一区二区三区不卡| 久久精品一区四区| 一区二区三区不卡在线观看| 亚洲欧美视频一区| 欧美日韩夫妻久久| 狠狠色丁香九九婷婷综合五月| 日本不卡123| 亚洲综合视频在线观看| 91精选在线观看| 国产激情一区二区三区| 亚洲视频每日更新| 中文字幕一区视频| 中文字幕精品三区| 亚洲三级电影网站| 最好看的中文字幕久久| 久久精品一区二区三区四区| 日韩欧美国产麻豆| 欧美成人一区二区三区片免费 | 日韩精品一区二区三区视频在线观看 | 日本欧美肥老太交大片| 成a人片国产精品| 国产美女在线精品| 国产精品一区二区三区99| 免费在线观看精品| 日韩成人伦理电影在线观看| 国产精品毛片a∨一区二区三区| 欧美久久一二三四区| 日韩视频免费观看高清完整版| 欧美综合天天夜夜久久| av高清久久久| 日韩欧美亚洲国产精品字幕久久久| 欧美影院午夜播放| 欧美日韩电影在线| 欧美亚州韩日在线看免费版国语版| 亚洲综合丝袜美腿| 一区二区在线电影| 国产日产欧美一区二区三区| 国产精品久久久久aaaa樱花| 午夜精品aaa| 麻豆成人91精品二区三区| 国内精品久久久久影院薰衣草| 国内一区二区视频| 91亚洲精品一区二区乱码| 午夜精品成人在线| 国产精品99久久久| 久久久www免费人成精品| 一区二区三区欧美视频| 亚洲一区二区高清| 亚洲欧美视频在线观看| 麻豆国产精品视频| 在线看国产一区二区| 欧美日韩成人一区| 欧美专区在线观看一区| 日韩欧美一二区| 国产精品久久久久影院亚瑟| 美女国产一区二区| 免费国产亚洲视频| 不卡视频在线观看| 欧美男人的天堂一二区| 欧美精品丝袜中出| 高清国产一区二区| 精品国产乱码久久久久久蜜臀| 亚洲欧美日韩精品久久久久| 免费成人在线观看| av一区二区久久| 91精品国产色综合久久不卡蜜臀| 中文字幕av资源一区| 99久久免费精品高清特色大片| 91麻豆国产精品久久| 国产精品第一页第二页第三页| 亚洲高清免费观看高清完整版在线观看| 精品制服美女久久| 日韩精品中文字幕一区二区三区| 在线观看亚洲专区| 不卡av在线免费观看| 欧美丝袜丝交足nylons| 亚洲色图制服诱惑| 成人妖精视频yjsp地址| 欧美日韩不卡视频| 日本人妖一区二区| 伊人婷婷欧美激情| 日本亚洲最大的色成网站www| 一本在线高清不卡dvd| 欧美老肥妇做.爰bbww视频| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品麻豆视频| 成人高清免费观看| 极品美女销魂一区二区三区 | 色婷婷一区二区| 337p亚洲精品色噜噜狠狠| 欧美成人精品二区三区99精品| 丝瓜av网站精品一区二区| 激情六月婷婷综合| 国产精品初高中害羞小美女文| 国产一区 二区| 国产大陆亚洲精品国产| 高清不卡一区二区| 成人免费毛片嘿嘿连载视频| 国产午夜一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲天堂成人网| 成人精品免费看| 日韩欧美国产电影| 26uuu精品一区二区| 一区二区三区 在线观看视频| 国产精品77777| 大胆欧美人体老妇| 亚洲国产精品一区二区尤物区| 欧洲色大大久久| 欧美经典一区二区| 欧美经典一区二区| 欧美一区二区三区免费视频| 久久99国产精品久久99| 91亚洲精品久久久蜜桃网站| 亚洲一二三专区| 色呦呦日韩精品| 日韩亚洲欧美在线| 91蜜桃婷婷狠狠久久综合9色| 欧美色大人视频| 久久蜜桃av一区精品变态类天堂| 成人午夜碰碰视频| 美女精品一区二区| 欧美性一区二区| 国产精品水嫩水嫩| 成人视屏免费看| 国产丝袜美腿一区二区三区| 亚洲国产wwwccc36天堂| 9色porny自拍视频一区二区| 久久激情综合网| 日韩欧美的一区二区| 一区二区免费在线| 在线国产亚洲欧美| 欧美一级二级三级蜜桃| 亚洲一区在线观看视频| 色女孩综合影院| 亚洲一区影音先锋| 亚洲v日本v欧美v久久精品| 大陆成人av片| 欧美大尺度电影在线| 日韩电影在线观看一区| 日本一区二区三区视频视频| 精品视频一区二区不卡| 欧美人牲a欧美精品| 色婷婷av一区二区| 精品奇米国产一区二区三区| 九九九精品视频|