【问题标题】:How to train test split custom dataset如何训练测试拆分自定义数据集
【发布时间】:2023-01-21 02:40:28
【问题描述】:

我有一个包含四个类(文件夹)的图像数据集...加载数据集不是问题..我的问题是如何获取因变量和自变量以便我可以拆分数据集以进行进一步处理

数据集=“路径/” 类别=["A","B","C","D"] 我的问题是加载数据集后如何继续,以便我可以对所有四个类执行 onehot 编码 我是这个领域的初学者......所以任何帮助都会做谢谢

【问题讨论】:

    标签: python-3.x tensorflow machine-learning keras deep-learning


    【解决方案1】:

    如果您将图像数据集拆分为训练、测试和验证,那么有很多方法可以做到这一点。 假设,这是你的文件夹结构。

    $ tree dataset
    
    dataset/
      |
      |-- A (folder)
      |   |
      |   |--> image1.jpeg
      |   |--> image2.jpeg
      |
      |-- B (folder)
      |   |
      |   |--> image1.jpeg
      |   |--> image2.jpeg
      |
      |-- C (folder)
      |   |
      |   |--> image1.jpeg
      |   |--> image2.jpeg
      |
      |-- D (folder)
      |   |
      |   |--> image1.jpeg
      |   |--> image2.jpeg
      |
    

    它是一个分割数据集的函数python

    import random
    import os
    import shutil
    
    def split(main_path:str, from_path:str, size:float=0.2, shuffle=True) -> any:
        file = []
        for i in os.listdir(main_path):
            file.append(os.path.join(main_path, i))
    
        if shuffle:
            random.shuffle(file)   # For shuffling the file path
    
        sizes = round(size * int(len(file)))   # Calculating the Dataset
        for i in range(sizes):
            shutil.move(file[int(i), from_path)  # For moving the File from another Directory
    
    if __name__ == '__main__':
        PATH = "/new_dataset"  # Enter New Dataset Path
        try:
            os.mkdir(os.path.join(PATH, "Validation"))
            os.mkdir(os.path.join(PATH, "Test"))
            for i in os.listdir(PATH):
                os.mkdir(os.path.join(PATH, "Validation" ,i))
                os.mkdir(os.path.join(PATH, "Test" ,i))
        except FileExistsError:
              pass
           
        for i in os.listdir("/dataset"):
            split(os.path.join("/dataset", i), os.path.join(PATH, "Validation", i), size=0.2, shuffle=True)
        for i in os.listdir("/dataset"):
            split(os.path.join("/dataset", i), os.path.join(PATH, "Validation", i), size=0.2, shuffle=True)
    

    并且,提醒文件夹将其名称 dataset 更改为“train”并将其移动到“/new_dataset”目录中。每个目录包含随机图像

    
    $ tree new_dataset
    
    new_dataset/
      |
      |-- Train (folder) # /dataset
      |   |
      |   |--> A
      |   |--> B
      |   |--> C
      |   |--> D
      |
      |-- Test (folder)
      |   |
      |   |--> A
      |   |--> B
      |   |--> C
      |   |--> D
      |
      |-- Validation (folder)
      |   |
      |   |--> A
      |   |--> B
      |   |--> C
      |   |--> D
      |
    

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 2018-11-05
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 2022-06-25
      • 1970-01-01
      • 2017-02-20
      • 2017-11-01
      相关资源
      最近更新 更多