<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
作用:torch.utils.data.DataLoader 主要是對資料進行 batch 的劃分。
資料載入器,結合了資料集和取樣器,並且可以提供多個執行緒處理資料集。
在訓練模型時使用到此函數,用來 把訓練資料分成多個小組 ,此函數 每次丟擲一組資料 。直至把所有的資料都丟擲。就是做一個資料的初始化。
好處:
使用DataLoader的好處是,可以快速的迭代資料。
用於生成迭代資料非常方便。
注意:
除此之外,特別要注意的是輸入進函數的資料一定得是可迭代的。如果是自定的資料集的話可以在定義類中用def__len__、def__getitem__定義。
BATCH_SIZE 剛好整除資料量
""" 批訓練,把資料變成一小批一小批資料進行訓練。 DataLoader就是用來包裝所使用的資料,每次丟擲一批資料 """ import torch import torch.utils.data as Data BATCH_SIZE = 5 # 批訓練的資料個數 x = torch.linspace(1, 10, 10) # 訓練資料 print(x) y = torch.linspace(10, 1, 10) # 標籤 print(y) # 把資料放在資料庫中 torch_dataset = Data.TensorDataset(x, y) # 對給定的 tensor 資料,將他們包裝成 dataset loader = Data.DataLoader( # 從資料庫中每次抽出batch size個樣本 dataset=torch_dataset, # torch TensorDataset format batch_size=BATCH_SIZE, # mini batch size shuffle=True, # 要不要打亂資料 (打亂比較好) num_workers=2, # 多執行緒來讀資料 ) def show_batch(): for epoch in range(3): for step, (batch_x, batch_y) in enumerate(loader): # training print("steop:{}, batch_x:{}, batch_y:{}".format(step, batch_x, batch_y)) show_batch()
輸出結果:
tensor([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
tensor([10., 9., 8., 7., 6., 5., 4., 3., 2., 1.])
steop:0, batch_x:tensor([10., 1., 3., 7., 6.]), batch_y:tensor([ 1., 10., 8., 4., 5.])
steop:1, batch_x:tensor([8., 5., 4., 9., 2.]), batch_y:tensor([3., 6., 7., 2., 9.])
steop:0, batch_x:tensor([ 9., 3., 10., 1., 5.]), batch_y:tensor([ 2., 8., 1., 10., 6.])
steop:1, batch_x:tensor([2., 6., 8., 4., 7.]), batch_y:tensor([9., 5., 3., 7., 4.])
steop:0, batch_x:tensor([ 2., 10., 9., 6., 1.]), batch_y:tensor([ 9., 1., 2., 5., 10.])
steop:1, batch_x:tensor([8., 3., 4., 7., 5.]), batch_y:tensor([3., 8., 7., 4., 6.])
說明:共有 10 條資料,設定 BATCH_SIZE 為 5 來進行劃分,能劃分為 2 組(steop 為 0 和 1)。這兩組資料互斥。
BATCH_SIZE 不整除資料量:會輸出餘下所有資料
將上述程式碼中的 BATCH_SIZE 改為 4 :
""" 批訓練,把資料變成一小批一小批資料進行訓練。 DataLoader就是用來包裝所使用的資料,每次丟擲一批資料 """ import torch import torch.utils.data as Data BATCH_SIZE = 4 # 批訓練的資料個數 x = torch.linspace(1, 10, 10) # 訓練資料 print(x) y = torch.linspace(10, 1, 10) # 標籤 print(y) # 把資料放在資料庫中 torch_dataset = Data.TensorDataset(x, y) # 對給定的 tensor 資料,將他們包裝成 dataset loader = Data.DataLoader( # 從資料庫中每次抽出batch size個樣本 dataset=torch_dataset, # torch TensorDataset format batch_size=BATCH_SIZE, # mini batch size shuffle=True, # 要不要打亂資料 (打亂比較好) num_workers=2, # 多執行緒來讀資料 ) def show_batch(): for epoch in range(3): for step, (batch_x, batch_y) in enumerate(loader): # training print("steop:{}, batch_x:{}, batch_y:{}".format(step, batch_x, batch_y)) show_batch()
輸出結果:
tensor([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
tensor([10., 9., 8., 7., 6., 5., 4., 3., 2., 1.])
steop:0, batch_x:tensor([1., 5., 3., 2.]), batch_y:tensor([10., 6., 8., 9.])
steop:1, batch_x:tensor([7., 8., 4., 6.]), batch_y:tensor([4., 3., 7., 5.])
steop:2, batch_x:tensor([10., 9.]), batch_y:tensor([1., 2.])
steop:0, batch_x:tensor([ 7., 10., 5., 2.]), batch_y:tensor([4., 1., 6., 9.])
steop:1, batch_x:tensor([9., 1., 6., 4.]), batch_y:tensor([ 2., 10., 5., 7.])
steop:2, batch_x:tensor([8., 3.]), batch_y:tensor([3., 8.])
steop:0, batch_x:tensor([10., 3., 2., 8.]), batch_y:tensor([1., 8., 9., 3.])
steop:1, batch_x:tensor([1., 7., 5., 9.]), batch_y:tensor([10., 4., 6., 2.])
steop:2, batch_x:tensor([4., 6.]), batch_y:tensor([7., 5.])
說明:共有 10 條資料,設定 BATCH_SIZE 為 4 來進行劃分,能劃分為 3 組(steop 為 0 、1、2)。分別有 4、4、2 條資料。
到此這篇關於PyTorch中torch.utils.data.DataLoader簡單介紹與使用方法的文章就介紹到這了,更多相關PyTorch中torch.utils.data.DataLoader內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45