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

Pytorch DataLoader shuffle驗證方式

 更新時間:2021年06月01日 16:35:51   作者:循環(huán)是人遞歸是神  
這篇文章主要介紹了Pytorch DataLoader shuffle驗證方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

shuffle = False時,不打亂數(shù)據(jù)順序

shuffle = True,隨機打亂

import numpy as np
import h5py
import torch
from torch.utils.data import DataLoader, Dataset  
h5f = h5py.File('train.h5', 'w');
data1 = np.array([[1,2,3],
               [2,5,6],
              [3,5,6],
              [4,5,6]])
data2 = np.array([[1,1,1],
                   [1,2,6],
                  [1,3,6],
                  [1,4,6]])
h5f.create_dataset(str('data'), data=data1)
h5f.create_dataset(str('label'), data=data2)
class Dataset(Dataset):
    def __init__(self):
        h5f = h5py.File('train.h5', 'r')
        self.data = h5f['data']
        self.label = h5f['label']
    def __getitem__(self, index):
        data = torch.from_numpy(self.data[index])
        label = torch.from_numpy(self.label[index])
        return data, label
 
    def __len__(self):
        assert self.data.shape[0] == self.label.shape[0], "wrong data length"
        return self.data.shape[0] 
 
dataset_train = Dataset()
loader_train = DataLoader(dataset=dataset_train,
                           batch_size=2,
                           shuffle = True)
 
for i, data in enumerate(loader_train):
    train_data, label = data
    print(train_data)
 

pytorch DataLoader使用細節(jié)

背景:

我一開始是對數(shù)據(jù)擴增這一塊有疑問, 只看到了數(shù)據(jù)變換(torchvisiom.transforms),但是沒看到數(shù)據(jù)擴增, 后來搞明白了, 數(shù)據(jù)擴增在pytorch指的是torchvisiom.transforms + torch.utils.data.DataLoader+多個epoch共同作用下完成的,

數(shù)據(jù)變換共有以下內(nèi)容

composed = transforms.Compose([transforms.Resize((448, 448)), #  resize
                               transforms.RandomCrop(300), # random crop
                               transforms.ToTensor(),
                               transforms.Normalize(mean=[0.5, 0.5, 0.5],  # normalize
                                                    std=[0.5, 0.5, 0.5])])

簡單的數(shù)據(jù)讀取類, 進返回PIL格式的image:

class MyDataset(data.Dataset):    
    def __init__(self, labels_file, root_dir, transform=None):
        with open(labels_file) as csvfile:
            self.labels_file = list(csv.reader(csvfile))
        self.root_dir = root_dir
        self.transform = transform
        
    def __len__(self):
        return len(self.labels_file)
    
    def __getitem__(self, idx):
        im_name = os.path.join(root_dir, self.labels_file[idx][0])
        im = Image.open(im_name)
        
        if self.transform:
            im = self.transform(im)
            
        return im

下面是主程序

labels_file = "F:/test_temp/labels.csv"
root_dir = "F:/test_temp"
dataset_transform = MyDataset(labels_file, root_dir, transform=composed)
dataloader = data.DataLoader(dataset_transform, batch_size=1, shuffle=False)
"""原始數(shù)據(jù)集共3張圖片, 以batch_size=1, epoch為2 展示所有圖片(共6張)  """
for eopch in range(2):
    plt.figure(figsize=(6, 6)) 
    for ind, i in enumerate(dataloader):
        a = i[0, :, :, :].numpy().transpose((1, 2, 0))
        plt.subplot(1, 3, ind+1)
        plt.imshow(a)

從上述圖片總可以看到, 在每個eopch階段實際上是對原始圖片重新使用了transform, , 這就造就了數(shù)據(jù)的擴增

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)的Kmeans++算法實例

    Python實現(xiàn)的Kmeans++算法實例

    這篇文章主要介紹了Kmeans和kmeans++算法,講解了Kmeans算法的缺點和kmeans++算法的實現(xiàn)思路,以及Python和matlab中實現(xiàn)的Kmeans++算法,需要的朋友可以參考下
    2014-04-04
  • Python導(dǎo)入模塊的3種方式超級詳細講解

    Python導(dǎo)入模塊的3種方式超級詳細講解

    這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入模塊的3種方式,本文介紹了在Python中使用模塊的概念和不同的導(dǎo)入方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 23個很棒的Python腳本集合分享(迷你項目)

    23個很棒的Python腳本集合分享(迷你項目)

    這篇文章主要為大家詳細介紹了23個很棒的Python腳本的集合(迷你項目),文中的示例代碼講解詳細,對我們了解Python有一定幫助,感興趣的可以了解一下
    2022-11-11
  • Python中創(chuàng)建數(shù)值列表的4種方法總結(jié)

    Python中創(chuàng)建數(shù)值列表的4種方法總結(jié)

    在Python中列表(List)是一種有序、可變的數(shù)據(jù)類型,被廣泛用于存儲和處理多個元素,這篇文章主要給大家介紹了關(guān)于Python中創(chuàng)建數(shù)值列表的4種方法,需要的朋友可以參考下
    2024-05-05
  • Python實現(xiàn)批量文件自定義命名

    Python實現(xiàn)批量文件自定義命名

    有時候我們經(jīng)常需要對某一個文件夾中的文件進行重命名修改,但是我們一個一個取修改將會非常繁瑣,下面我們就來利用Python實現(xiàn)批量文件自定義命名吧
    2024-11-11
  • Python使用configparser庫讀取配置文件

    Python使用configparser庫讀取配置文件

    這篇文章主要介紹了Python使用configparser庫讀取配置文件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Python更新所有已安裝包的操作

    Python更新所有已安裝包的操作

    今天小編就為大家分享一篇Python更新所有已安裝包的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python字典的元素訪問實例詳解

    python字典的元素訪問實例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python字典的元素訪問實例詳解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-07-07
  • Python腳本實現(xiàn)自動登錄校園網(wǎng)

    Python腳本實現(xiàn)自動登錄校園網(wǎng)

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著如何使用Python腳本實現(xiàn)自動登錄校園網(wǎng)展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python批量查詢、漢字去重處理CSV文件

    python批量查詢、漢字去重處理CSV文件

    這篇文章主要為大家詳細介紹了python批量查詢、漢字去重處理CSV文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論

清涧县| 南靖县| 白玉县| 双桥区| 噶尔县| 增城市| 吴川市| 云阳县| 城固县| 襄樊市| 永顺县| 依兰县| 克山县| 榕江县| 宝丰县| 乌苏市| 阿拉尔市| 察雅县| 荣昌县| 蒙城县| 通榆县| 崇仁县| 克什克腾旗| 新干县| 池州市| 巴南区| 高阳县| 无锡市| 玉林市| 昭苏县| 奈曼旗| 偃师市| 陆良县| 罗城| 平江县| 宝鸡市| 开原市| 乐昌市| 福泉市| 波密县| 炉霍县|