Я хочу загрузить ~ 1000 изображений из ОДНОЙ папки, предварительно обработать их и разделить их с 3-кратной перекрестной проверкой перед прохождением через CNN, но у меня возникают проблемы с эффективным выполнением.Я строго использую Python, Keras, Tensorflow, Scikit-learn и OpenCV.
Я пробовал загружать изображения через список, но список запоминает путь к каждому изображению, поэтому позже трудно "вызвать" изображенияв обучении модели CNN (в части model.fit).Я пытался сделать это с рассолом, но я немного растерялся.Другая проблема возникает, когда я пытаюсь обучить свою сеть.Я не классифицирую изображения, но у меня есть 3 выхода, которые представляют вектор в 3 направлениях.Вот почему у меня проблемы с настройкой тренировочной части, и я пометил «????»в части кода, где я запутался, как «вызывать» мои изображения.
path = "C:\\"
image_path_list = []
valid_image_extensions = [ ".png"]
valid_image_extensions = [item.lower() for item in valid_image_extensions]
for file in os.listdir(path):
extension = os.path.splitext(file)[1]
if extension.lower() not in valid_image_extensions:
continue
image_path_list.append(os.path.join(path, file))
i = 1;
data = []
for imagePath in image_path_list:
print("image #" + str(i))
image = cv2.imread(imagePath,6)
data.append(image)
print(imagePath)
i+=1
print (image_path_list)
# 3-fold cross validation
from sklearn.model_selection import KFold
kf = KFold (3, shuffle=False, random_state=2019)
kf.get_n_splits(data)
for train, test in kf.split(data):
print("TRAIN:", train, "TEST:", test)
#....
#....CNN layers and compile layer
#....
model.fit(x=????, y=None, epochs=10, validation_split=0.1)
Ожидается, что моя CNN обучит мои изображения после трехкратной перекрестной проверки.