六 Dataset類實戰

2021-10-21 10:57:43 字數 1820 閱讀 6640

用dataset類讀取:

from torch.utils.data import dataset        #載入dataset類,在torch工具箱內,常用的工具區utils,其中關於資料的data區中匯入

from pil import image #讀取。或者用opencv,寫為import cv2

class mydata(dataset): #繼承dataset類

def __init__(self,root_dir,lable_dir): #類的例項化,主函式建立例項物件時,自動呼叫該函式,主要作為外部資訊傳入類中私有方法的介面

self.lable_dir=lable_dir #的標籤資訊

self.img_name=os.listdir(self.root_dir)#os開啟目錄,listdir函式返回目錄下檔案(夾)的名稱列表

def __getitem__(self, idx): #例項化__getitem__方法,idx代表索引。實力物件通過:物件[idx],python會自動呼叫該函式

img_name=self.img_name[idx] #列表中索引為idx的值(檔名稱,此處值名稱)賦給img_name

img_path=os.path.join(self.root_dir,img_name)#具體的路徑,用os.path.join方法連線兩個路徑

img=image.open(img_path) #開啟,將資訊賦值給img,具體包含的資訊可以在python console中檢視

lable = self.lable_dir #lable賦值

return img,lable #返回資訊和標籤

def __len__(self): #例項化__len__方法

return len(self.img_name) #返回一共多少張,即列表的長度

ants_root_dir="e:\\pytorch pycharm\\hymenoptera_data\\train\\ants" #檔案目錄資訊。一般複製到project下可以複製相對路徑

ants_lable_dir="ants" #索引資訊

ants_dataset=mydata(ants_root_dir,ants_lable_dir) #建立螞蟻的例項物件

img,lable=ants_dataset[0] #ants_dataset[idx]自動呼叫__getitem__方法

img.show() #img.show()方法展示

bees_root_dir="e:\\pytorch pycharm\\hymenoptera_data\\train\\bees"

bees_lable_dir="bees"

bees_dataset=mydata(bees_root_dir,bees_lable_dir) #建立蜜蜂的例項物件

train_dataset=ants_dataset+bees_dataset #+號可以把兩個資料集合並,索引範圍變為兩類數量之和,通常用於訓練時數量不足,補充仿造的資料集的情況

img,lable=train_dataset[124] #索引號增加

img.show()

mmdetection之dataset類解讀

總結本篇是mmdetection原始碼解讀第二篇,主要講解mmdetection是初始化資料類的。本文以coco資料集為例,當然,原始碼解讀不可能面面俱到,重要的是揣摩設計者的思想以及實現過程。另外,本文先暫時不予介紹dataloader構建過程。通常我們利用pytorch讀取資料集需要構建兩個部分...

dataset類的相關使用

表示資料在記憶體中的快取。system.object system.componentmodel.marshalbyvaluecomponent system.data.dataset visual basic public class datasetinherits marshalbyvaluec...

dataset與實體類

dataset與sqldataadapter物件是微軟在ado.net中推出的新一代的資料訪問方式,有些情況下非常適合使用 dataset,例如在設計原型 開發小型系統和支援實用程式時。但是,在企業系統中使用 dataset 可能並不是最佳的解決方案,因為對企業系統來說,易於維護要比投入市場的時間更...