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

Matlab生成适配ResNet50分类代码的图像.mat数据集方法

Matlab 符合ResNet50分类代码要求的数据集生成代码

首先明确目标输出DatasColor_38.mat内DATA元胞数组的固定结构,和原分类代码完全对齐:

  • DATA{1}:1×总样本数的元胞数组,单个元素对应1张uint8格式的RGB图像
  • DATA{2}:长度为总样本数的double类型标签数组,标签取值为1~类别数
  • DATA{3}:折数×总样本数的double类型索引矩阵,每行为打乱后的全样本索引,前DIM1个为训练集索引,后续为测试集索引(和原示例一致默认生成3折划分)
  • DATA{4}:double类型数值,单折对应的训练集样本数
  • DATA{5}:double类型数值,总样本数

前置准备:将你的7类图像按类别放在独立子文件夹中,子文件夹直接命名为1到7,所有子文件夹放在同一个根目录下,代码会自动遍历子文件夹读取图像和对应标签。

%% 参数配置 可根据自身需求修改
dataset_root = './your_dataset_folder'; % 替换为存放7个类别子文件夹的根目录路径
class_num = 7; % 类别总数
train_ratio = 2/3; % 训练集占比,和原示例880/1320比例保持一致,若要8:2划分改为0.8即可
fold_num = 3; % 交叉验证折数,和原示例保持一致为3
img_suffix = '*.jpeg'; % 图像后缀,若是jpg就改为*.jpg、png就改为*.png

%% 读取所有图像和标签
NX = {};
lab = [];
for class_id = 1:class_num
    class_folder = fullfile(dataset_root, num2str(class_id));
    img_list = dir(fullfile(class_folder, img_suffix));
    fprintf('正在读取第%d类图像,共%d张\n', class_id, length(img_list));
    for i = 1:length(img_list)
        img_path = fullfile(class_folder, img_list(i).name);
        img = imread(img_path);
        % 统一处理为3通道RGB图像,避免维度不匹配报错
        if size(img,3) == 1
            img = repmat(img, [1,1,3]);
        elseif size(img,3) == 4
            img = img(:,:,1:3);
        end
        NX{end+1} = img;
        lab(end+1,1) = class_id;
    end
end
total_num = length(lab); % 总样本数
DIM1 = round(total_num * train_ratio); % 训练集样本数
DIM2 = total_num; % 总样本数

%% 生成3折划分索引矩阵DIV
DIV = zeros(fold_num, total_num);
for fold = 1:fold_num
    % 分层打乱索引,保证每折类别分布均匀
    fold_idx = [];
    for class_id = 1:class_num
        class_idx = find(lab == class_id);
        class_idx = class_idx(randperm(length(class_idx)));
        fold_idx = [fold_idx; class_idx];
    end
    DIV(fold,:) = fold_idx(randperm(length(fold_idx)));
end

%% 组装为指定结构的DATA元胞数组并保存
DATA = cell(1,5);
DATA{1} = NX;
DATA{2} = lab;
DATA{3} = DIV;
DATA{4} = DIM1;
DATA{5} = DIM2;

save('DatasColor_38.mat', 'DATA');
fprintf('数据集生成完成,总样本数%d,训练集样本数%d,测试集样本数%d\n', DIM2, DIM1, DIM2-DIM1);

使用说明

  • 运行代码前修改dataset_root为你自己的数据集根目录路径,根据图像实际格式修改img_suffix参数即可
  • 生成的DatasColor_38.mat直接放在原ResNet50分类代码的工作目录下,不需要修改原分类代码即可直接运行
  • 代码自动处理灰度图、RGBA格式图像为3通道RGB格式,避免维度报错
  • 索引划分采用分层随机打乱,保证训练集、测试集的类别分布和整体数据集一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:31:05