При работе с TensorFlow и возникновении ошибки «ImportError: невозможно импортировать имя image_dataset_from_directory» из ошибки «tensorflow.keras.preprocessing» это может расстраивать. Эта ошибка обычно возникает, когда функция image_dataset_from_directory недоступна или устарела в используемой вами версии TensorFlow. В этой статье мы рассмотрим альтернативные методы загрузки наборов данных изображений с помощью TensorFlow, предоставив примеры кода для каждого подхода.
Методы загрузки наборов данных изображений:
-
Метод: использование «ImageDataGenerator» и «flow_from_directory».
Пример кода:from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator(rescale=1./255) train_generator = datagen.flow_from_directory( directory='path/to/train', target_size=(224, 224), batch_size=32, class_mode='binary' )
-
Метод: использование «tf.data.Dataset» и «tf.keras.preprocessing.image_dataset_from_directory».
Пример кода:import tensorflow as tf train_dataset = tf.keras.preprocessing.image_dataset_from_directory( directory='path/to/train', labels='inferred', label_mode='binary', image_size=(224, 224), batch_size=32 )
-
Метод: загрузка изображений вручную с использованием «os» и «PIL».
Пример кода:import os import numpy as np from PIL import Image def load_images_from_directory(directory, target_size): images = [] labels = [] for filename in os.listdir(directory): if filename.endswith('.jpg') or filename.endswith('.png'): img = Image.open(os.path.join(directory, filename)) img = img.resize(target_size) img = np.array(img) / 255.0 images.append(img) labels.append(filename.split('.')[0]) # Assuming image filenames are labeled accordingly return np.array(images), np.array(labels) train_images, train_labels = load_images_from_directory('path/to/train', (224, 224))
Проблему «ImportError» при попытке импортировать «image_dataset_from_directory» можно преодолеть, используя альтернативные методы для загрузки наборов данных изображений в TensorFlow. В этой статье мы рассмотрели три разных подхода, продемонстрировав примеры кода для каждого метода. Используя эти альтернативы, вы можете продолжать беспрепятственно работать с данными изображений в TensorFlow.