亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將圖像文件夾拆分為訓練數據集和驗證數據集

將圖像文件夾拆分為訓練數據集和驗證數據集

絕地無雙 2022-09-13 09:57:17
我已經加載了我的數據集,如下所示:full_dataset = ImageFolder(root = os.path.join(root, 'train'), transform=train_transforms)現在,為了將我的數據集拆分為訓練集和驗證集,我使用以下代碼:train_size = int(0.8 * len(full_dataset))validation_size = len(full_dataset) - train_sizetrain_dataset, validation_dataset = random_split(full_dataset, [train_size, validation_size])和 均為 類型 : 。有沒有辦法將這些數據集轉換為 .我需要這樣做,因為我無法迭代類型的數據集train_datasetvalidation_datasettorch.utils.data.dataset.Subsettorchvision.datasets.folder.ImageFoldertorch.utils.data.dataset.Subset
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您應該能夠很好地循環訪問 Subset,因為它實現了從源代碼中看到的方法:__getitem__


class Subset(Dataset):

    r"""

    Subset of a dataset at specified indices.


    Arguments:

        dataset (Dataset): The whole Dataset

        indices (sequence): Indices in the whole set selected for subset

    """

    def __init__(self, dataset, indices):

        self.dataset = dataset

        self.indices = indices


    def __getitem__(self, idx):

        return self.dataset[self.indices[idx]]


    def __len__(self):

        return len(self.indices)

因此,以下方法應該有效:


for image, label in train_dataset:

    print(image, label)

或者,您可以從子集創建數據加載器:


train_dataloader = DataLoader(train_dataset, batch_size, shuffle)


for images, labels in train_dataloader:

    print(images, labels)

與 相同。validation_dataset


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 71 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號