91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pytorch中Dataset數據處理的示例分析

發布時間:2021-12-27 10:08:16 來源:億速云 閱讀:161 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Pytorch中Dataset數據處理的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

    Pytorch系列是了解與使用Pytorch編程來實現卷積神經網絡。

    學習如何對卷積神經網絡編程;首先,需要了解Pytorch對數據的使用(也是在我們模型流程中對數據的預處理部分),其中有兩個包Dataset,DataLoaderDatasetPytorch對于單個數據的處理類似于給一堆數據進行編號,(在有標簽的圖像處理中)對其有序地提取圖像與標簽,
    DataLoader則是一坨一坨的數據進行批次的處理。

    此實驗運用的數據是北郵鄧偉洪老師的人臉表情包的數據集,

    當然大家也可以自己手動做個二分類數據集之類的就將一幅幅的圖片放圖標簽命名的文件夾中即可。

    將鄧偉洪老師的RAF-DB簡單來刨析,假設其只有Image,沒有真正的Annotation等,
    則其根路徑(整個data的大體位置)設為 root_dir = "D:\data\basic"
    (由于以下考慮了Annotation,"Image"放入label)標簽路徑(data下的label位置)設為label_dir="Image\aligned(original)"

    可參考下圖理解:

    Pytorch中Dataset數據處理的示例分析

    假設alignedoriginal是標簽,但是它是真正的圖片的路徑

    Pytorch中Dataset數據處理的示例分析

    Pytorch中Dataset數據處理的示例分析

     現在開始編程:

    因為使用Dataset,即讓新的類(MyData)來繼承Dataset需要改寫 def __getitem__(self,item):def __len__(self):
    其中, def __getitem__ (self,item):輸入一系列圖像的path與圖像的index(組合為一張圖像的詳細地址),輸出圖像與標簽,代碼中默認item為序列號,但是為了方便將item改寫為idx;
    def __len__(self):輸入一系列圖像的路徑,輸出這些圖像的個數。
    其他的函數就可以創新加載自己定義的類里。

    from torch.utils.data import Dataset #Dataset的包
    import os #路徑需要這個
    import cv2 # 需要讀取圖片,最好用opencv-python,當然也可以用PIL只是我不順手
    
    
    class MyData(Dataset): #我定義的這個類
        def __init__(self, root_dir, label_dir):
         #下面需要使用的變量,在__init__定義好,
            self.root_dir = root_dir # 根路徑 data在電腦或者服務器大致的位置
            self.label_dir = label_dir # label的位置(這里假設Image的名字就是label的位置)
            self.path = os.path.join(self.root_dir, self.label_dir)# 將這個兩個合在一起就能找到整體圖片的大致路徑
            self.img_path = os.listdir(self.path) #得到整體圖片的路徑(可取其中的一張一張的圖像的名字)
    
        def __getitem__(self, idx): 
        # 改寫__getitem__(self,item)函數,最后得到圖像,標簽
          #獲取具體的一幅圖像的名字
            img_name = self.img_path[idx]
            #獲取一幅圖像的詳細地址
            img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)
            #用opencv來讀取圖像
            img = cv2.imread(img_item_path)
            #獲取標簽(這里簡單寫了aligned與original)
            label = self.label_dir
            return img, label
    
        def __len__(self):
        #改寫整體圖像的大小
            return len(self.img_path)
    
    
    root_dir = "D://data//basic"
    img_dir = "Image"
    aligned_label_dir = "aligned"
    # aligned_label_dir = "Image//aligned"
    aligned_label_dir = os.path.join(img_dir, aligned_label_dir)
    
    original_label_dir = "original"
    #original_label_dir = "Image//original"
    original_label_dir = os.path.join(img_dir, original_label_dir)
    
    #aligned_data = "D://data//basic//Image//aligned"
    aligned_data = MyData(root_dir, aligned_label_dir)
    #original_data = "D://data//basic//Image//original"
    original_data = MyData(root_dir, original_label_dir)
    data = aligned_data + original_data
    # 15339
    print(len(aligned_data))
    # 15339
    print(len(original_data))
    # 30678
    print(len(data))
    img_1, label_1 = data[15338]
    img_2, label_2 = data[15339]
    print(label_1) # Image\aligned
    print(label_2) # Image\original

    感謝各位的閱讀!關于“Pytorch中Dataset數據處理的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    西和县| 怀化市| 江陵县| 晋中市| 高青县| 仪陇县| 禹州市| 新沂市| 昌图县| 德令哈市| 平乐县| 阜城县| 饶阳县| 尉氏县| 辛集市| 望城县| 威宁| 宁城县| 崇义县| 那坡县| 长武县| 铁岭县| 平潭县| 浦城县| 遂宁市| 凤冈县| 韩城市| 井研县| 象州县| 琼结县| 个旧市| 会宁县| 玉屏| 高陵县| 湖州市| 岳普湖县| 谢通门县| 古丈县| 论坛| 新乡县| 台南市|