要从文件夹导入图像并将部分图像设置为测试数据,将部分图像设置为训练数据,你可以按照以下步骤进行操作:
以下是一个使用Python和TensorFlow/Keras库进行数据分割的示例:
import os
import numpy as np
from sklearn.model_selection import train_test_split
from tensorflow.keras.preprocessing.image import ImageDataGenerator
# 假设图像存储在 'images' 文件夹中,且每个类别有自己的子文件夹
data_dir = 'images'
categories = os.listdir(data_dir)
# 存储图像路径和对应的标签
images = []
labels = []
for category in categories:
path = os.path.join(data_dir, category)
for img in os.listdir(path):
img_path = os.path.join(path, img)
images.append(img_path)
labels.append(category)
# 将标签转换为数字编码
label_to_id = {label: idx for idx, label in enumerate(np.unique(labels))}
labels = [label_to_id[label] for label in labels]
# 分割数据集
train_images, test_images, train_labels, test_labels = train_test_split(images, labels, test_size=0.2, random_state=42)
# 数据增强和预处理
train_datagen = ImageDataGenerator(rescale=1./255, rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
data_dir,
target_size=(150, 150),
batch_size=32,
class_mode='categorical',
subset='training'
)
validation_generator = test_datagen.flow_from_directory(
data_dir,
target_size=(150, 150),
batch_size=32,
class_mode='categorical',
subset='validation'
)
# 现在你可以使用 train_generator 和 validation_generator 来训练你的模型
ImageDataGenerator
)分批加载图像。通过以上步骤和示例代码,你可以有效地从文件夹导入图像,并将其分割为训练数据和测试数据。
领取专属 10元无门槛券
手把手带您无忧上云