代码之家  ›  专栏  ›  技术社区  ›  Md. Rezwanul Haque

如何在X\u train,y\u train,X\u test,y\u test中分割图像数据集?

  •  0
  • Md. Rezwanul Haque  · 技术社区  · 6 年前

    Dataset/
       |
       |
       -----Pothole/
       |         |
       |         ------ umm001.jpg
       |         |
       |         ------ abd.jpg
       |         |
       |         ------ 
       |         |
       |
       |
       ----Road/
             |
             ------road005.jpg
             |
             ------ummm.jpg
             |
             ------
             |
    

    我想把这个数据集分成 X_train, y_train, X_test, y_test .

    ### data: shuffled and split between train and test
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    

    或者,

    (X_train, y_train), (X_test, y_test) = train_test_split(X,y, test_size=0.20)
    

    2 回复  |  直到 6 年前
        1
  •  4
  •   pazitos10    6 年前

    你可以建造 X y 数组使用 os

    import os
    
    X = []
    y = []
    base_dir = '<full path to dataset folder>/'
    for f in sorted(os.listdir(base_dir)):
        if os.path.isdir(base_dir+f):
            print(f"{f} is a target class")
            for i in sorted(os.listdir(base_dir+f)):
                print(f"{i} is an input image path")
                X.append(base_dir+f+'/'+i)
                y.append(f)
    print(X)
    print(y)
    

    然后你可以使用 train_test_split(X,y, test_size=0.20) pillow scikit-image 或者类似的。

    如果你打算使用 pytorch ImageFolder class