日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pytorch自定义数据集

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pytorch自定义数据集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡述

Pytorch自定義數據集方法,應該是用pytorch做算法的最基本的東西。
往往網絡上給的demo都是基于torch自帶的MNIST的相關類。所以,為了解決使用其他的數據集,在查閱了torch關于MNIST數據集的源碼之后,很容易就可以推廣到了我們自己需要的代碼上。

具體操作如下:

準備工作

需要導入一些包。

from torch.utils.data import Dataset, DataLoader

再自定義一個用于當訓練集合的類。

class TrainSet(Dataset):def __init__(self, X, Y):# 定義好 image 的路徑self.X, self.Y = X, Ydef __getitem__(self, index):return self.X[index], self.Y[index]def __len__(self):return len(self.X)

數據預處理

之后,假設你的訓練集合為[X,Y],其中X是訓練數據,Y是對應的數據的標簽。

首先,需要知道的是,torch能處理的數據只能是torch.Tensor,所以有必要將其他數據轉換為torch.Tensor。

常見的有幾種數據:

  • np.ndarray
  • PIL.Image

如果是圖片數據,其實也有多種情況,根據數據維度不同,有些是二維圖,有些是三維圖(通俗來講,就是黑白圖和彩圖)。

所以,我先按照數據類型的模式將一遍,再補充關于圖片的處理。

np.ndarray

np.ndarray是非常常見的格式,轉成Tensor也非常簡單。

torch.Tensor(array)

這樣代碼的返回格式就是一個Tensor。

PIL.Image

import torchvision.transforms as transforms transforms.ToTensor()(image)

這樣代碼的返回格式就是一個Tensor。

關于圖片

  • 彩色的三維圖: 上面方法就已經完成了對應的數據處理的步驟
  • 灰白或者是二值的二維圖:就需要將數據增加一個維度了(因為往往關于圖片,所用到的算法都是包括了卷積的步驟,所以要求增加一個維度)

具體操作如下: 明顯,torch.Tensor(X)這樣的步驟,其實是重復了上面的將np.ndarray轉成torch.Tensor的步驟。同理可以換成上面的關于PIL.Image的方法

X_tensor = torch.unsqueeze(torch.Tensor(X), 1) Y_tensor = torch.unsqueeze(torch.Tensor(Y), 1)

導入數據

建立自己的數據集。

mydataset = TrainSet(X_tensor, Y_tensor)

再把自己的數據集導入到數據加載器上:

  • batch_size表示用將原數據拆分之后,每batch_size個數據作為一組數據被調用。shuffle表示數據是否被洗牌(即刷新順序,避免訓練的時候多次調用結果都遇到同一batch,從而避免誤差)
train_loader = DataLoader(mydataset, batch_size=10, shuffle=True)

使用的方式也非常簡單:

for step, (x, y) in enumerate(train_loader):

這里的x,y就是每個batch所處理的數據。

另外,附上一個我常用的讀取自定義圖片的dataset類

main函數部分是對數據集做測試。

import torch.utils.data as data import glob import os import torchvision.transforms as transforms from PIL import Image import matplotlib.pyplot as plt import numpy as np import torchimport piexif import imghdrclass MyDataset(data.Dataset):def __init__(self, path, Train=True, Len=-1, resize=-1, img_type='png', remove_exif=False):if resize != -1:transform = transforms.Compose([transforms.Resize(resize),transforms.CenterCrop(resize),transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))# transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))])else:transform = transforms.Compose([transforms.ToTensor(),])img_format = '*.%s' % img_typeif remove_exif:for name in glob.glob(os.path.join(path, img_format)):try:piexif.remove(name) # 去除exifexcept Exception:continue# imghdr.what(img_path) 判斷是否為損壞圖片if Len == -1:self.dataset = [np.array(transform(Image.open(name).convert("RGB"))) for name inglob.glob(os.path.join(path, img_format)) if imghdr.what(name)]else:self.dataset = [np.array(transform(Image.open(name).convert("RGB"))) for name inglob.glob(os.path.join(path, img_format))[:Len] if imghdr.what(name)]self.dataset = np.array(self.dataset)self.dataset = torch.Tensor(self.dataset)self.Train = Traindef __len__(self):return len(self.dataset)def __getitem__(self, idx):return self.dataset[idx]if __name__ == '__main__':path = r'D:\Software\DataSet\faces'dataset = MyDataset(path=path, resize=96, Len=10, img_type='jpg')print(len(dataset))plt.imshow(dataset[0].numpy().transpose(1, 2, 0) * 0.5 + 0.5)plt.show()print(dataset[0].max(), dataset[0].min())

總結

以上是生活随笔為你收集整理的Pytorch自定义数据集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本一区二区观看 | 免费观看的av网站 | 国产一区二区在线免费 | 亚洲乱码av | 亚洲精品无码专区 | 999免费视频 | 亚洲中文字幕一区 | 青娱乐91视频| 亚洲国产精品美女 | 日韩精品一二三 | 久久午夜国产 | 琪琪女色窝窝777777 | 91日韩精品 | 久久久亚洲精品视频 | 特级丰满少妇一级aaaa爱毛片 | 综合久久色 | 国产原创视频在线观看 | jizz日本免费| 国产精品第六页 | 黄色av网站在线 | 久久久不卡国产精品一区二区 | 国产精品国产三级国产普通话蜜臀 | 尤物视频最新网址 | julia中文字幕在线 | 成人1区| 哪里可以看免费毛片 | 日韩欧美精品中文字幕 | 亚洲欧美精品一区 | 图片一区二区 | 饥渴的少妇和男按摩师 | www.激情.com | 丰满肉嫩西川结衣av | 国产精彩视频 | 成人午夜久久 | 国产又粗又硬视频 | 青青草视频免费观看 | 李宗瑞91在线正在播放 | 国模小丫大尺度啪啪人体 | 貂蝉被到爽流白浆在线观看 | 国产又粗又硬视频 | 亚洲国产精品无码久久 | 国产69精品一区二区 | 先锋影音久久 | 丝袜老师办公室里做好紧好爽 | 女人囗交吞精囗述 | 成人精品视频一区二区 | 综合第一页 | 国产亚洲欧美一区二区三区 | 免费成人一级片 | 九九热视频在线 | 婷婷在线影院 | 精品国产亚洲一区二区麻豆 | 日本视频免费在线 | 成年网站免费在线观看 | 999伊人| 亚洲女优视频 | 一级黄色性生活片 | 麻豆黄色网址 | 久久日韩 | 亚洲欧洲自拍 | 日本精品一区二区三区在线观看 | 在线成人欧美 | 欧美 日韩 综合 | 欧美日韩中文字幕一区二区三区 | 人妻精品一区一区三区蜜桃91 | 日韩成人免费视频 | 精品成人一区二区 | 中文视频一区二区 | 免费黄色网址在线 | 综合狠狠开心 | 国产三级在线观看完整版 | 人人cao | 国产免费一区二区三区视频 | 国产亚洲欧美一区二区三区 | 久久亚洲aⅴ无码精品 | 国产jizz | 国产精品久久久久国产a级 国产一区二区在线播放 | 国产伊人自拍 | 亚洲精品自拍视频 | 免费看日批视频 | 爆操91| 日本黄色免费观看 | 亚洲色图28p | 午夜爱爱网 | 欧美激情区| 动漫av一区| 免费日b视频 | 免费看91的网站 | 涩五月婷婷 | 色爱综合| 久久黄色小说 | 中文在线不卡视频 | 视频日韩| 中文字幕制服诱惑 | 日韩大片免费在线观看 | 男女午夜激情 | 热久久免费| 国内偷拍精品视频 | 五月婷中文字幕 |