You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sklearn.datasets.load_files加载图像分类自定义数据集

sklearn自定义图像数据集加载方案(基于load_files实现)

load_files完全可以适配你按类别文件夹存储的图像数据集。它的核心能力是遍历目录结构、以子文件夹名为类别自动生成数字标签、读取文件原始内容,所谓“面向文本设计”只是默认参数会尝试将文件内容解码为字符串,只要跳过文本解码步骤、将读取到的字节流转为模型可识别的数值数组即可,最终输出格式和load_digits(return_X_y=True)完全对齐,不需要修改你后续的图像分类代码。
你的目录结构完全符合load_files的加载规则,不需要额外整理标注文件。

具体实现代码

首先导入所需依赖:

from sklearn.datasets import load_files
import numpy as np
from PIL import Image
import io
from sklearn.model_selection import train_test_split
# 后续分类模型(SVM、KNN、随机森林等)和你用load_digits时的导入逻辑完全一致

核心加载与转换逻辑:

# 按目录加载文件,自动生成类别标签
dataset = load_files(
    container_path="./DataSet",  # 替换为你的数据集根目录实际路径
    shuffle=True,
    random_state=42,
    load_content=True,
    decode_error="ignore"  # 跳过文本解码报错,适配二进制图像内容
)

X = []
# 统一所有图像的输入尺寸,可根据任务调整,模仿手写数字数据集可设为(8,8)
FIXED_IMG_SIZE = (8, 8)

for raw_content in dataset.data:
    # 从字节流直接打开图像,支持png/jpg等常见格式
    img = Image.open(io.BytesIO(raw_content))
    # 转单通道灰度图,彩色分类任务直接删掉这行即可
    img = img.convert("L")
    # 强制resize到统一尺寸,保证所有样本特征维度一致
    img = img.resize(FIXED_IMG_SIZE)
    # 转为numpy数组并展平为一维向量,和load_digits返回的X格式完全对齐
    img_feature = np.array(img).flatten()
    X.append(img_feature)

# 转为numpy数组格式,标签直接复用load_files生成的数字编码结果
X = np.array(X)
y = dataset.target

# 可选:打印类别对应关系,dataset.target_names存储的是原始子文件夹名
print("类别ID与名称映射:", {idx: name for idx, name in enumerate(dataset.target_names)})

加载完成后后续流程和内置数据集完全一致,比如拆分数据集训练:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 后续直接传入分类模型训练即可,原有分类代码无需修改

实用调整技巧

  • 大内存占用优化:如果数据集规模较大,不需要一次性把所有图像读入内存,可以把load_files的参数load_content设为False,此时dataset.data返回的是每个图像的本地路径,循环中用img = Image.open(file_path)逐张读取即可,大幅降低内存占用。
  • 彩色图像适配:如果是三通道彩色图像任务,删掉img.convert("L")这行代码即可,最终展平后的特征长度为固定宽 * 固定高 * 3,模型输入维度对应调整即可。
  • 数值尺度对齐:load_digits返回的像素值范围是0-16,而图像读入默认是0-255,如果模型对特征尺度敏感,可以加一行X = X / 16 或者做0-1归一化X = X / 255,对齐数值尺度后模型精度通常更稳定。
  • 透明通道处理:带alpha透明通道的png图像在转灰度/三通道RGB时会自动丢弃透明通道,不需要额外写兼容逻辑。

内容的提问来源于stack exchange,提问作者gggrunt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:51:28