成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 PyTorch 中使用 Datasets 和 DataLoader 自定義數據

人工智能 深度學習
有時候,在處理大數據集時,一次將整個數據加載到內存中變得非常難。唯一的方法是將數據分批加載到內存中進行處理,這需要編寫額外的代碼來執行此操作。對此,PyTorch 已經提供了 Dataloader 功能。

有時候,在處理大數據集時,一次將整個數據加載到內存中變得非常難。

因此,唯一的方法是將數據分批加載到內存中進行處理,這需要編寫額外的代碼來執行此操作。對此,PyTorch 已經提供了 Dataloader 功能。

DataLoader

下面顯示了 PyTorch 庫中DataLoader函數的語法及其參數信息。

  1. DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, 
  2.            batch_sampler=None, num_workers=0, collate_fn=None, 
  3.            pin_memory=False, drop_last=False, timeout=0, 
  4.            worker_init_fn=None, *, prefetch_factor=2, 
  5.            persistent_workers=False

幾個重要參數

  • dataset:必須首先使用數據集構造 DataLoader 類。
  • Shuffle :是否重新整理數據。
  • Sampler :指的是可選的 torch.utils.data.Sampler 類實例。采樣器定義了檢索樣本的策略,順序或隨機或任何其他方式。使用采樣器時應將 Shuffle 設置為 false。
  • Batch_Sampler :批處理級別。
  • num_workers :加載數據所需的子進程數。
  • collate_fn :將樣本整理成批次。Torch 中可以進行自定義整理。

加載內置 MNIST 數據集

MNIST 是一個著名的包含手寫數字的數據集。下面介紹如何使用DataLoader功能處理 PyTorch 的內置 MNIST 數據集。

  1. import torch 
  2. import matplotlib.pyplot as plt 
  3. from torchvision import datasets, transforms 

上面代碼,導入了 torchvision 的torch計算機視覺模塊。通常在處理圖像數據集時使用,并且可以幫助對圖像進行規范化、調整大小和裁剪。

對于 MNIST 數據集,下面使用了歸一化技術。

ToTensor()能夠把灰度范圍從0-255變換到0-1之間。

  1. transform = transforms.Compose([transforms.ToTensor()]) 

下面代碼用于加載所需的數據集。使用 PyTorchDataLoader通過給定 batch_size = 64來加載數據。shuffle=True打亂數據。

  1. trainset = datasets.MNIST('~/.pytorch/MNIST_data/', download=True, train=True, transform=transform) 
  2. trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True

為了獲取數據集的所有圖像,一般使用iter函數和數據加載器DataLoader。

  1. dataiter = iter(trainloader) 
  2. images, labels = dataiter.next() 
  3. print(images.shape) 
  4. print(labels.shape) 
  5. plt.imshow(images[1].numpy().squeeze(), cmap='Greys_r'

自定義數據集

下面的代碼創建一個包含 1000 個隨機數的自定義數據集。

  1. from torch.utils.data import Dataset 
  2. import random 
  3.   
  4. class SampleDataset(Dataset): 
  5.   def __init__(self,r1,r2): 
  6.       randomlist=[] 
  7.       for i in range(120): 
  8.           n = random.randint(r1,r2) 
  9.           randomlist.append(n) 
  10.       self.samples=randomlist  
  11.   
  12.   def __len__(self): 
  13.       return len(self.samples) 
  14.   
  15.   def __getitem__(self,idx): 
  16.       return(self.samples[idx]) 
  17.   
  18. dataset=SampleDataset(1,100) 
  19. dataset[100:120] 

 

在這里插入圖片描述

最后,將在自定義數據集上使用 dataloader 函數。將 batch_size 設為 12,并且還啟用了num_workers =2 的并行多進程數據加載。

  1. from torch.utils.data import DataLoader 
  2. loader = DataLoader(dataset,batch_size=12, shuffle=True, num_workers=2 ) 
  3. for i, batch in enumerate(loader): 
  4.     print(i, batch) 

 寫在后面通過幾個示例了解了 PyTorch Dataloader 在將大量數據批量加載到內存中的作用。

 

責任編輯:姜華 來源: Python之王
相關推薦

2022-11-23 15:26:25

Ubuntu程序塢

2009-06-23 11:35:44

JSF的Naviati

2009-11-10 17:12:22

VB.NET自定義類型

2023-11-14 10:05:52

Java開發工具

2011-06-15 09:24:36

Qt Widget Model

2023-09-12 13:59:41

OpenAI數據集

2023-09-04 15:06:18

Pytorch靜態量化動態量化

2021-12-02 18:05:21

Android Interpolato動畫

2019-12-25 11:47:27

LinuxFVWM

2022-01-14 09:17:13

PythonAPISIX插件

2010-10-25 16:05:07

oracle自定義函數

2015-02-12 15:33:43

微信SDK

2011-06-20 16:54:40

Qt Widget model

2023-12-29 08:01:52

自定義指標模板

2021-05-28 08:58:41

Golang網卡metrics

2022-11-29 08:07:23

CSSJavaScript自定義

2020-07-25 16:33:02

tmuxGitLinux終端

2017-01-11 10:27:36

Linux終端自定義Bash

2015-02-12 15:38:26

微信SDK

2009-09-11 11:04:23

C# WinForm自
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 三a毛片 | 这里只有精品99re | 老子午夜影院 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 美女视频黄色片 | 欧美成人精品一区二区三区 | 国产专区在线 | 日韩国产精品一区二区三区 | 伊人一二三 | 色婷婷一区二区三区四区 | 欧美激情精品久久久久 | 精品91久久久 | 日本一道本 | 亚洲国产精品人人爽夜夜爽 | 亚洲国产精品va在线看黑人 | 久久久久国产 | 精品国产不卡一区二区三区 | 亚洲欧美在线观看 | 精品久久国产 | 国产精品国产三级国产aⅴ无密码 | 久久看看 | 国产精品久久久久久久久久三级 | 欧美日韩国产在线观看 | 在线亚洲电影 | 黄色片视频 | 欧美xxxx黑人又粗又长 | 中文字幕av亚洲精品一部二部 | 日韩精品视频在线 | 精品欧美色视频网站在线观看 | 国产色婷婷久久99精品91 | 欧美自拍一区 | 性生生活大片免费看视频 | 久久久久久免费毛片精品 | 国产欧美日韩在线播放 | 一区二区三区国产 | 亚洲性网 | 成人免费网站在线 | 三级av网址 | 97精品超碰一区二区三区 | 精品国产一区二区三区久久久蜜月 | 国产成人精品综合 |