Разделение классов наборов данных для двоичной классификации ML ⇐ Python
Разделение классов наборов данных для двоичной классификации ML
data_dir = '/kaggle/input/' my_data_dir = f'{data_dir}/surface-crack-detection/surface-crack-detection/' положительный_каталог = my_data_dir + 'Позитивный/' отрицательный_каталог = my_data_dir + 'Отрицательный/' # Определить размеры изображения img_height, img_width = 224, 224 размер_пакета = 32 # Создаем ImageDataGenerators без увеличения данных datagen = ImageDataGenerator (масштабирование = 1./255, validation_split = 0,2) train_generator = datagen.flow_from_directory( мои_данные_каталог, target_size=(img_height, img_width), размер_пакета=размер_пакета, class_mode = 'двоичный', подмножество = 'обучение' ) validation_generator = datagen.flow_from_directory( мои_данные_каталог, target_size=(img_height, img_width), размер_пакета=размер_пакета, class_mode = 'двоичный', подмножество = 'проверка' ) У меня есть две папки: Positive и Negative. Проблема в том, что если я напечатаю следующее:
для i в диапазоне (len(validation_generator)): пакет = следующий (validation_generator) изображения, этикетки = партия file_paths = validation_generator.filepaths[i * размер_пакета:(i + 1) * размер_пакета] для j в диапазоне (len(file_paths)): print(f"Путь к файлу: {file_paths[j]}, метка: {labels[j]}") Я получаю:
Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00001.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00002.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00003.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00004.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00005.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00006.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00007.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00008.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00009.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00010.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00011.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00012.jpg, метка: 1.0 Это означает, что ярлык неправильный. Метка должна соответствовать имени папки: для отрицательной папки метка всегда должна быть 0, а для положительной папки метка всегда должна быть 1.
В чем я ошибаюсь?
data_dir = '/kaggle/input/' my_data_dir = f'{data_dir}/surface-crack-detection/surface-crack-detection/' положительный_каталог = my_data_dir + 'Позитивный/' отрицательный_каталог = my_data_dir + 'Отрицательный/' # Определить размеры изображения img_height, img_width = 224, 224 размер_пакета = 32 # Создаем ImageDataGenerators без увеличения данных datagen = ImageDataGenerator (масштабирование = 1./255, validation_split = 0,2) train_generator = datagen.flow_from_directory( мои_данные_каталог, target_size=(img_height, img_width), размер_пакета=размер_пакета, class_mode = 'двоичный', подмножество = 'обучение' ) validation_generator = datagen.flow_from_directory( мои_данные_каталог, target_size=(img_height, img_width), размер_пакета=размер_пакета, class_mode = 'двоичный', подмножество = 'проверка' ) У меня есть две папки: Positive и Negative. Проблема в том, что если я напечатаю следующее:
для i в диапазоне (len(validation_generator)): пакет = следующий (validation_generator) изображения, этикетки = партия file_paths = validation_generator.filepaths[i * размер_пакета:(i + 1) * размер_пакета] для j в диапазоне (len(file_paths)): print(f"Путь к файлу: {file_paths[j]}, метка: {labels[j]}") Я получаю:
Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00001.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00002.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00003.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00004.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00005.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00006.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00007.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00008.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00009.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00010.jpg, метка: 0.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00011.jpg, метка: 1.0 Путь к файлу: /kaggle/input//surface-crack-detection/surface-crack-detection/Negative/N00012.jpg, метка: 1.0 Это означает, что ярлык неправильный. Метка должна соответствовать имени папки: для отрицательной папки метка всегда должна быть 0, а для положительной папки метка всегда должна быть 1.
В чем я ошибаюсь?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение