Как загрузить данные проверки с помощью функции flow_from_directory в tensorflow

#python #tensorflow #keras #dataset #image-preprocessing

Вопрос:

[Решено]

У меня возникла проблема при использовании функции flow_from_directory в модуле tensorflow tensorflow.keras.предварительная обработка.изображение

Я могу загрузить все свои данные для обучения своей модели, но я не могу загрузить свои данные для проверки обучения…

Мой код (правка) [РАБОТАЕТ !] :

 # Import
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, models
from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_data_dir = '../data/train'
validation_data_dir = '../data/validation'

# this is the augmentation configuration we will use for training
train_datagen = ImageDataGenerator(
    rescale=1. / 255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    #validation_split=0.20
    )

# this is the augmentation configuration we will use for testing:
# only rescaling
test_datagen = ImageDataGenerator(rescale=1./255)

def create_dataset(train_data_dir, validation_data_dir, img_height, img_width, batch_size):

    train_generator = train_datagen.flow_from_directory(
        train_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        shuffle=True,
        class_mode='categorical',
        subset = 'training',
        )

    validation_generator = train_datagen.flow_from_directory(
        validation_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        shuffle=True,
        class_mode='categorical',
        subset = 'validation',
        )

    return train_generator, validation_generator
 

Мой набор данных находится в функции, которую я вызываю в своей модели CNN, и когда я запускаю ее, она всегда возвращает это :

 Found 0 images belonging to 6 classes.
Epoch 1/5Found 5732 images belonging to 6 classes.
Found 0 images belonging to 6 classes.
Epoch 1/5
 

Редактировать :
Это та часть в моей model.py файл, в котором я вызываю функцию create_dataset :

 image_height = 100
image_width = 100
batch_size = 32

ds_train, ds_validation = create_dataset("../data/train", "../data/validation", image_height, image_width, batch_size)
 

С
Н
Н

 model.fit(ds_train, epochs=5, verbose=2)
model.evaluate(ds_validation, verbose=2)
model.save('../complete_saved_model/')
 

Может ли кто-нибудь помочь мне решить эту проблему ?

Комментарии:

1. Можете ли вы также включить код того, как вы подгоняете модель?

2. Да, я только что отредактировал свой вопрос

3. Я обнаружил свою ошибку… Я не был очень осторожен со своим кодом.

Ответ №1:

в вашем train_generator удалите подмножество кода = «обучение». Аналогично, в вашем генераторе проверки удалите подмножество кода = «проверка».

Комментарии:

1. Привет, Джерри, спасибо за твой ответ, но подмножество ничего не меняет ! Я нашел решение два дня назад, моей ошибкой было использование test_datagen, а не train_datagen на этапе проверки …