深度之眼PyTorch訓練營第二期 ---5、Dataloader與Dataset 以及 transforms與normalize


一、人民幣二分類

描述:輸入人民幣,通過模型判定類別並輸出。

 

  • 數據:四個子模塊

    數據收集 -> img,label 原始數據和標簽
    數據划分 -> train訓練集 valid驗證集 test測試集
    數據讀取 -> DataLoader ->(1)Sampler(生成index) (2)Dataset(讀取Img,Label)
    數據預處理 -> transforms

1、DataLoader

  •   torch.utils.data.DataLoader  功能:構建可迭代的數據裝載器
    •   dataset:Dataset類,決定數據從哪里讀取及如何讀取
    • batchsize:批大小
    •        num_works:是否多進程讀取數據
    •        shuffle:每個epoch是否亂序
    •        drop_last:當樣本數不能被batchsize整除時,是否舍棄最后一批數據
  • Epoch、Iteration、Batchsize關系

    Epoch:所有訓練樣本都已輸入到模型中,稱為一個epoch

    Iteration:一批樣本輸入到模型中,稱之為一個Iteration

    Batchsize:批大小,決定一個Epoch有多少個iteration

    例如:樣本總數:80 batchsize:8 

      1    epoch = 10  iteration  一次iteration輸入8個樣本,所以一次的epoch=8

        樣本總數:87 batchsize:8

      if drop_last = true  1 epoch = 10  iteration

                      else drop_last = false 1  epoch = 11 iteration

2、Dataset

  • torch.utils.data.Dataset   功能:Dataset抽象類,所有自定義的Dataset需要繼承它,並且復寫
    •   __getitem__()  :接收一個索引,返回一個樣本及標簽

3、數據讀取:

思考:讀哪些數據?從哪里讀數據?怎么讀數據?

 

 

二、Dataloader與Dataset

 

三、transform運行機制

torchvision:計算機視覺工具包

  • torchvision.transforms:常用的圖像預處理方法
  • torchvision.datasets:常用數據集的dataset實現,MNIST,CIFAR-10,ImageNet
  • torchvision.model:常用的模型預訓練,AlexNet,VGG,ResNet,GoogLeNet等

1、torchvision.transforms  ---  提高泛化能力

  • l  數據中心化
  • l  數據標准化
  • l  縮放
  • l  剪裁
  • l  旋轉
  • l  翻轉
  • l  填充
  • l  噪聲添加
  • l  灰度變換
  • l  線性變換
  • l  仿射變換
  • l  亮度、飽和度及對比度變換

四、數據標准化—transforms.normalize

transforms.normalize 功能:逐channel的對圖像進行標准化

    output = (input - mean)/ std;

    •   mean:各通道的均值
    •   std:各通道的標准差
    •   inplace:是否原地操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM