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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

三、如何搞自定义数据集?

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三、如何搞自定义数据集? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、定義的數據集,未做預處理。
  • 二、定義數據集,并做數據預處理。
    • 1.預處理部分
    • 2.定義數據過程


前言

MNIST數據這個最最基礎的數據集已經被走在程序猿道路上的同學們玩壞了,所以今天教大家如何搞一個自定義數據集。


一、定義的數據集,未做預處理。

下面展示一些 內聯代碼片

import  os
from  torch.utils.data import  Dataset ,DataLoader
from PIL import Image#1.創建數據集類,使用torch.utils.data中的Dataset方法。
class My_Dataset(Dataset):#2.循環找到文件路徑,并添加標簽def __init__(self,main_dir,data_type,transforms):self.dataset=[]#空列表為裝新增一個標簽的數據庫self.transforms=transformsif data_type==0:data_filename='train'elif data_type is 1:data_filename='val'else:data_filename='test'for i , cls_filename in enumerate(os.listdir(os.path.join(main_dir,data_filename))):for i ,img_data in enumerate(os.listdir(os.path.join(main_dir,data_filename,cls_filename))):self.dataset.append([os.path.join(main_dir,data_filename,cls_filename,img_data),int(img_data[0]) ])#3.計算圖片長度,方便后面迭代def __len__(self):return len(self.dataset)#為了獲取圖片長度,方便迭代#4、取出圖片路徑,并打開,便于做數據預處理def __getitem__(self, index):img,label=self.dataset[index]img_data=Image.open(img)img_data=self.transforms(img_data)return img_data,label

示例:@TOC

二、定義數據集,并做數據預處理。

包括旋轉、裁剪、轉為張量、擴大、正則化等等。

1.預處理部分

#4、取出圖片路徑,并打開,便于做數據預處理
def __getitem__(self, index):img,label=self.dataset[index]img_data=self.data_process(Image.open(img))return img_data,label#5.數據處理,數據增強、加噪聲等等
def data_process(self,x):return transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean=(0.5,),std=(0.5,))])(x)

2.定義數據過程

代碼如下(示例):

import  os
from  torchvision import transforms
from  torch.utils.data import  Dataset ,DataLoader
from PIL import Image#1.創建數據集類,使用torch.utils.data中的Dataset方法。
class My_Dataset(Dataset):#2.循環找到文件路徑,并添加標簽def __init__(self,main_dir,data_type):self.dataset=[]#空列表為裝新增一個標簽的數據庫if data_type==0:data_filename='train'elif data_type is 1:data_filename='val'else:data_filename='test'for i , cls_filename in enumerate(os.listdir(os.path.join(main_dir,data_filename))):for i ,img_data in enumerate(os.listdir(os.path.join(main_dir,data_filename,cls_filename))):self.dataset.append([os.path.join(main_dir,data_filename,cls_filename,img_data),i ])#3.計算圖片長度,方便后面迭代def __len__(self):return len(self.dataset)#為了獲取圖片長度,方便迭代#4、取出圖片路徑,并打開,便于做數據預處理def __getitem__(self, index):img,label=self.dataset[index]img_data=self.data_process(Image.open(img))return img_data,label#5.數據處理,數據增強、加噪聲等等def data_process(self,x):return transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean=(0.5,),std=(0.5,))])(x)
``

總結

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

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