Вы хотите разделить ваши данные для обучения и тестирования наборов. Для этого вы можете либо
Вручную или с помощью сценария отдельно обучайте и тестируйте папки и загружайте их для обучения с помощью генератора данных.
Загрузка целых данных и разделение их для обучения и проверки в памяти.
Давайте обсудим второй вариант.
основной каталог содержит 40 подкаталогов
Предположим, что ваш главный каталог - Train//
, и есть 40
подпапок, а именно 1-40
. Кроме того, я предполагаю, что метка класса - это имя папки.
# imports
import cv2
import numpy as np
import os
from sklearn.model_selection import train_test_split
# seed for reproducibility
SEED = 44000
# lists to store data
data = []
label = []
# folder where data is placed
BASE_FOLDER = 'Train//'
folders = os.listdir(BASE_FOLDER)
# loading data to lists
for folder in folders:
for file in os.listdir(BASE_FOLDER + folder + '//'):
img = cv2.imread(BASE_FOLDER + folder + '//' + file)
# do any pre-processing if needed like resize, sharpen etc.
data = data.append(img)
label = label.append(folder)
# now split the data in to train and test with the help of train_test_split
train_data, test_data, train_label, test_label = train_test_split(data, label, test_size=0.2, random_state=SEED)