我有一个类似以下结构的数据集:
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)
我该怎么做?
答案 0 :(得分:0)
您可以使用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来创建数据集。
答案 1 :(得分:-1)
您始终可以使用scikit-learn:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
别忘了导入
from sklearn.model_selection import train_test_split