最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytorch 數據處理:定義自己的數據集合實例

 更新時間:2019年12月31日 15:18:27   作者:藍鯨123  
今天小編就為大家分享一篇pytorch 數據處理:定義自己的數據集合實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

數據處理

版本1

#數據處理
import os
import torch
from torch.utils import data
from PIL import Image
import numpy as np

#定義自己的數據集合
class DogCat(data.Dataset):

  def __init__(self,root):
    #所有圖片的絕對路徑
    imgs=os.listdir(root)

    self.imgs=[os.path.join(root,k) for k in imgs]

  def __getitem__(self, index):
    img_path=self.imgs[index]
    #dog-> 1 cat ->0
    label=1 if 'dog' in img_path.split('/')[-1] else 0
    pil_img=Image.open(img_path)
    array=np.asarray(pil_img)
    data=torch.from_numpy(array)
    return data,label

  def __len__(self):
    return len(self.imgs)

dataSet=DogCat('./data/dogcat')

print(dataSet[0])

輸出:

( 
( 0 ,.,.) = 
215 203 191 
206 194 182 
211 199 187 
⋮ 
200 191 186 
201 192 187 
201 192 187

( 1 ,.,.) = 
215 203 191 
208 196 184 
213 201 189 
⋮ 
198 189 184 
200 191 186 
201 192 187

( 2 ,.,.) = 
215 201 188 
209 195 182 
214 200 187 
⋮ 
200 191 186 
202 193 188 
204 195 190 
…

(399,.,.) = 
72 90 32 
88 106 48 
38 56 0 
⋮ 
158 161 106 
87 85 36 
105 98 52 
[torch.ByteTensor of size 400x300x3] 
, 1)

上面的數據處理有下面的問題:

1.返回的樣本的形狀大小不一致,每一張圖片的大小不一樣。這對于需要batch訓練的神經網絡來說很不友好。

2. 返回的數據樣本數值很大,沒有歸一化【-1,1】

對于上面的問題,pytorch torchvision 是一個視覺化的工具包,提供了很多的圖像處理的工具,其中transforms模塊提供了對PIL image對象和Tensor對象的常用操作。

對PIL Image常見的操作如下;

Resize 調整圖片的尺寸,長寬比保持不變

CentorCrop ,RandomCrop,RandomSizeCrop 裁剪圖片

Pad 填充

ToTensor 將PIL Image 轉換為Tensor,會自動將[0,255] 歸一化至[0,1]

對Tensor 的操作如下:

Normalize 標準化,即減均值,除以標準差

ToPILImage 將Tensor轉換為 PIL Image對象

版本2

#數據處理
import os
import torch
from torch.utils import data
from PIL import Image
import numpy as np
from torchvision import transforms

transform=transforms.Compose([
  transforms.Resize(224), #縮放圖片,保持長寬比不變,最短邊的長為224像素,
  transforms.CenterCrop(224), #從中間切出 224*224的圖片
  transforms.ToTensor(), #將圖片轉換為Tensor,歸一化至[0,1]
  transforms.Normalize(mean=[.5,.5,.5],std=[.5,.5,.5]) #標準化至[-1,1]
])

#定義自己的數據集合
class DogCat(data.Dataset):

  def __init__(self,root):
    #所有圖片的絕對路徑
    imgs=os.listdir(root)

    self.imgs=[os.path.join(root,k) for k in imgs]
    self.transforms=transform

  def __getitem__(self, index):
    img_path=self.imgs[index]
    #dog-> 1 cat ->0
    label=1 if 'dog' in img_path.split('/')[-1] else 0
    pil_img=Image.open(img_path)
    if self.transforms:
      data=self.transforms(pil_img)
    else:
      pil_img=np.asarray(pil_img)
      data=torch.from_numpy(pil_img)
    return data,label

  def __len__(self):
    return len(self.imgs)

dataSet=DogCat('./data/dogcat')

print(dataSet[0])

輸出:

( 
( 0 ,.,.) = 
-0.1765 -0.2627 -0.1686 … -0.0824 -0.2000 -0.2627 
-0.2392 -0.3098 -0.3176 … -0.2863 -0.2078 -0.1765 
-0.3176 -0.2392 -0.2784 … -0.2941 -0.1137 -0.0118 
… ⋱ … 
-0.7569 -0.5922 -0.1529 … -0.8510 -0.8196 -0.8353 
-0.8353 -0.7255 -0.3255 … -0.8275 -0.8196 -0.8588 
-0.9373 -0.7647 -0.4510 … -0.8196 -0.8353 -0.8824

( 1 ,.,.) = 
-0.0431 -0.1373 -0.0431 … 0.0118 -0.0980 -0.1529 
-0.0980 -0.1686 -0.1765 … -0.1608 -0.0745 -0.0431 
-0.1686 -0.0902 -0.1373 … -0.1451 0.0431 0.1529 
… ⋱ … 
-0.5529 -0.3804 0.0667 … -0.7961 -0.7725 -0.7961 
-0.6314 -0.5137 -0.1137 … -0.7804 -0.7882 -0.8275 
-0.7490 -0.5608 -0.2392 … -0.7725 -0.8039 -0.8588 
… 
[torch.FloatTensor of size 3x224x224] 
, 1)

項目的github地址:https://github.com/WebLearning17/CommonTool

以上這篇pytorch 數據處理:定義自己的數據集合實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python 實現批量圖片識別并翻譯

    python 實現批量圖片識別并翻譯

    這篇文章主要介紹了python 實現批量圖片識別并翻譯,幫助大家利用python處理圖片,感興趣的朋友可以了解下
    2020-11-11
  • Python 3 中使用 Memcached的示例詳解

    Python 3 中使用 Memcached的示例詳解

    pymemcache是另一個流行的、功能豐富的Python Memcached客戶端庫,比python-memcached提供了復雜的操作和性能,在 Python3 中,使用 Memcached,高性能的分布式內存對象緩存系統(tǒng),可以通過多個第三方庫來實現,本文介紹Python 使用 Memcached相關知識,感興趣的朋友一起看看吧
    2024-02-02
  • python3模擬百度登錄并實現百度貼吧簽到示例分享(百度貼吧自動簽到)

    python3模擬百度登錄并實現百度貼吧簽到示例分享(百度貼吧自動簽到)

    這篇文章主要介紹了python3模擬百度登錄并實現百度貼吧簽到示例,需要的朋友可以參考下
    2014-02-02
  • opencv圖像處理之指紋驗證的實現

    opencv圖像處理之指紋驗證的實現

    本文主要介紹了opencv圖像處理之指紋驗證的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-04-04
  • 基于Python實現虛假評論檢測可視化系統(tǒng)

    基于Python實現虛假評論檢測可視化系統(tǒng)

    這篇文章主要為大家詳細介紹了如何基于Python實現一個簡單的虛假評論檢測可視化系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-04-04
  • Python中的自定義函數學習筆記

    Python中的自定義函數學習筆記

    這篇文章主要介紹了Python中的自定義函數學習筆記,本文講解了定義函數、callable函數、help函數等內容,需要的朋友可以參考下
    2014-09-09
  • Python中的閉包總結

    Python中的閉包總結

    這篇文章主要介紹了Python中的閉包總結,本文講解了閉包的概念、為什么使用閉包、使用閉包實例等內容,需要的朋友可以參考下
    2014-09-09
  • 教你使用Python根據模板批量生成docx文檔

    教你使用Python根據模板批量生成docx文檔

    這篇文章主要介紹了教你使用Python根據模板批量生成docx文檔,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • python 百度aip實現文字識別的實現示例

    python 百度aip實現文字識別的實現示例

    百度aip將圖片或掃描件中的文字識別成可編輯的文本,本文主要介紹了python 百度aip實現文字識別,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • Python中bisect的用法

    Python中bisect的用法

    這篇文章主要介紹了Python中bisect的用法,主要講述了針對數組的插入及排序操作,非常具有實用價值,需要的朋友可以參考下
    2014-09-09

最新評論

方城县| 渝中区| 开原市| 尉犁县| 襄城县| 赤水市| 西丰县| 当涂县| 莱阳市| 托克逊县| 兰考县| 铜梁县| 富顺县| 海原县| 巴林左旗| 砀山县| 漳平市| 西青区| 吴忠市| 克拉玛依市| 全椒县| 历史| 青神县| 呈贡县| 双牌县| 黎城县| 巴中市| 东海县| 彭州市| 晋城| 保康县| 巴林左旗| 武隆县| 方山县| 丹棱县| 石景山区| 佛坪县| 肇庆市| 广西| 东平县| 纳雍县|