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

PyTorch實現(xiàn)重寫/改寫Dataset并載入Dataloader

 更新時間:2020年07月14日 16:11:53   作者:全員鱷魚  
這篇文章主要介紹了PyTorch實現(xiàn)重寫/改寫Dataset并載入Dataloader,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

眾所周知,Dataset和Dataloder是pytorch中進行數(shù)據(jù)載入的部件。必須將數(shù)據(jù)載入后,再進行深度學習模型的訓練。在pytorch的一些案例教學中,常使用torchvision.datasets自帶的MNIST、CIFAR-10數(shù)據(jù)集,一般流程為:

# 下載并存放數(shù)據(jù)集
train_dataset = torchvision.datasets.CIFAR10(root="數(shù)據(jù)集存放位置",download=True)
# load數(shù)據(jù)
train_loader = torch.utils.data.DataLoader(dataset=train_dataset)

但是,在我們自己的模型訓練中,需要使用非官方自制的數(shù)據(jù)集。這時應該怎么辦呢?

我們可以通過改寫torch.utils.data.Dataset中的__getitem____len__來載入我們自己的數(shù)據(jù)集。
__getitem__獲取數(shù)據(jù)集中的數(shù)據(jù),__len__獲取整個數(shù)據(jù)集的長度(即個數(shù))。

改寫

采用pytorch官網(wǎng)案例中提供的一個臉部landmark數(shù)據(jù)集。數(shù)據(jù)集中含有存放landmark的csv文件,但是我們在這篇文章中不使用(其實也可以隨便下載一些圖片作數(shù)據(jù)集來實驗)。

import os
import torch
from skimage import io, transform
import numpy as np
import matplotlib.pyplot as plt
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms, utils

plt.ion()  # interactive mode

torch.utils.data.Dataset是一個抽象類,我們自己的數(shù)據(jù)集需要繼承Dataset,然后改寫上述兩個函數(shù):

class ImageLoader(Dataset):
  def __init__(self, file_path, transform=None):
    super(ImageLoader,self).__init__()
    self.file_path = file_path
    self.transform = transform # 對輸入圖像進行預處理,這里并沒有做,預設為None
    self.image_names = os.listdir(self.file_path) # 文件名的列表
    
  def __getitem__(self,idx):
    image = self.image_names[idx]
    image = io.imread(os.path.join(self.file_path,image))
#    if self.transform:
#    	image= self.transform(image)
    return image
         
  def __len__(self):
    return len(self.image_names)

# 設置自己存放的數(shù)據(jù)集位置,并plot展示    
imageloader = ImageLoader(file_path="D:\\Projects\\datasets\\faces\\")
# imageloader.__len__()       # 輸出數(shù)據(jù)集長度(個數(shù)),應為71
# print(imageloader.__getitem__(0)) # 以數(shù)據(jù)形式展示
plt.imshow(imageloader.__getitem__(0)) # 以圖像形式展示
plt.show()

得到的圖片輸出:


得到的數(shù)據(jù)輸出,:

array([[[ 66, 59, 53],
    [ 66, 59, 53],
    [ 66, 59, 53],
    ...,
    [ 59, 54, 48],
    [ 59, 54, 48],
    [ 59, 54, 48]],
    ...,
    [153, 141, 129],
    [158, 146, 134],
    [158, 146, 134]]], dtype=uint8)

上面看到dytpe=uint8,實際進行訓練的時候,常常需要更改成float的數(shù)據(jù)類型??梢允褂茫?/p>

# 直接改成pytorch中的tensor下的float格式 
# 也可以用numpy的改成普通的float格式
to_float= torch.from_numpy(imageloader.__getitem__(0)).float() 

改寫完成后,直接使用train_loader =torch.utils.data.DataLoader(dataset=imageloader)載入到Dataloader中,就可以使用了。
下面的代碼可以試著運行一下,產(chǎn)生的是一模一樣的圖片結(jié)果。

train_loader = torch.utils.data.DataLoader(dataset=imageloader)
train_loader.dataset[0]
plt.imshow(train_loader.dataset[0])
plt.show()

到此這篇關于PyTorch實現(xiàn)重寫/改寫Dataset并載入Dataloader的文章就介紹到這了,更多相關PyTorch重寫/改寫Dataset 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python time模塊用法實例詳解

    python time模塊用法實例詳解

    這篇文章主要介紹了python中time模塊的用法,包括了各類時間函數(shù),需要的朋友可以參考下
    2014-09-09
  • 用python爬取豆瓣前一百電影

    用python爬取豆瓣前一百電影

    大家好,本篇文章主要講的是用python爬取豆瓣前一百電影,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 在python中將list分段并保存為array類型的方法

    在python中將list分段并保存為array類型的方法

    今天小編就為大家分享一篇在python中將list分段并保存為array類型的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python還能這么玩之用Python修改了班花的開機密碼

    Python還能這么玩之用Python修改了班花的開機密碼

    今天帶大家學習如何用Python修改開機密碼,文中有非常詳細的代碼示例,喜歡惡作劇的小伙伴可以看一下,不過不要亂用哦,需要的朋友可以參考下
    2021-06-06
  • 解決python 3 urllib 沒有 urlencode 屬性的問題

    解決python 3 urllib 沒有 urlencode 屬性的問題

    今天小編就為大家分享一篇解決python 3 urllib 沒有 urlencode 屬性的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python離散建模之感知器學習算法

    python離散建模之感知器學習算法

    這篇文章主要介紹了python離散建模之感知器學習算法,感知機學習算法是支持向量機的基礎,支持向量機通過核函數(shù)進行非線性分類,支持向量機也是感知機算法的延伸,下面就來介紹感知算法的相關內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • 詳解Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù)及示例代碼數(shù)

    詳解Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù)及示例代碼數(shù)

    本文通過示例代碼給大家詳細介紹了Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù),非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-04-04
  • 利用Python如何制作好玩的GIF動圖詳解

    利用Python如何制作好玩的GIF動圖詳解

    這篇文章主要給大家介紹了關于利用Python如何制作好玩的GIF動圖的相關資料,實現(xiàn)的方法主要利用ImageMagick,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-07-07
  • 用Python爬取2022春節(jié)檔電影信息

    用Python爬取2022春節(jié)檔電影信息

    大家好,本篇文章主要講的是用Python爬取2022春節(jié)檔電影信息,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python學習之文件的讀取詳解

    Python學習之文件的讀取詳解

    這篇文章主要為大家介紹了Python中如何將文件中的內(nèi)容讀取出去來的方法,文中通過示例進行了詳細講解,感興趣的小伙伴快跟隨小編一起學習一下
    2022-03-03

最新評論

西峡县| 牟定县| 望江县| 肃北| 柯坪县| 普陀区| 沈丘县| 乌拉特前旗| 沙河市| 吉安市| 忻城县| 巢湖市| 彝良县| 西充县| 资中县| 巨鹿县| 武陟县| 龙陵县| 福安市| 彭水| 甘肃省| 巴青县| 雷山县| 米脂县| 萨嘎县| 澄迈县| 陆丰市| 莱阳市| 雅安市| 东乌珠穆沁旗| 慈溪市| 本溪| 朔州市| 贵定县| 中阳县| 长武县| 珲春市| 治多县| 永春县| 衡南县| 波密县|