训练自己的数据集(二)

本文介绍了一种用于训练CNN模型的数据集处理方法,包括如何使用get_files(file_dir, ratio)函数按比例划分训练集和验证集,以及图片路径和对应的类别标签。内容涉及图片路径的组织结构和标签分配。" 91662911,8256664,C语言实现迷宫游戏设计与改进心得,"['c/c++', '游戏开发', '算法']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要是图片处理的几个函数

第一个get_files(file_dir, ratio): 函数,输入获取文件的路径(注意根据函数的写法,路径中包含不同类别的文件夹),验证集所占比例

# step1:返回的四个值,分别是训练集的图片路径数组,训练集图片所属类别的数组;验证集图片路径数组,验证集图片所属类别的数组
def get_files(file_dir, ratio):
    for file in os.listdir(file_dir + '/speed_detecter'):
        speed_detecter.append(file_dir + '/speed_detecter' + '/' + file)
        label_speed_detecter.append(0)

    for file in os.listdir(file_dir + '/non_speed_detecter'):
        non_speed_detecter.append(file_dir + '/non_speed_detecter' + '/' + file)
        label_non_speed_detecter.append(1)


    # step2:对生成的图片路径和标签List做打乱处理把cat和dog合起来组成一个list(img和lab)
    image_list = np.hstack((speed_detecter, non_speed_detecter))
    label_list = np.hstack((label_speed_detecter, label_non_speed_detecter))

    # 利用shuffle打乱顺序
    temp = np.array([image_list, label_list])
    temp = temp.transpose()
    np.random.shuffle(temp)

    # 从打乱的temp中再取出list(img和lab)
    # image_list = list(temp[:, 0])
    # label_list = list(temp[:, 1])
    # label_list = [int(i) for i in label_list]
    # return image_list, label_list

    # 将所有的img和lab转换成list
    all_image_list = list(temp[:, 0])
    all_label_list = list(temp[:, 1])

    # 将所得List分为两部分,一部分用来训练tra,一部分用来测试val
    # ratio是测试集的比例
    n_sample = len(all_label_list)
    n_val = int(math.ceil(n_sample * ratio))  # 测试样本数
    n_train = n_sample - n_val  # 训练样本数

    tra_images = all_image_list[0:n_train]
    tra_labels = all_label_list[0:n_train]
    tra_labels = [int(float(i)) for i in tra_labels]
    val_images = all_image_list[n_train:-1]
    val_labels = all_label_list[n_train:-1]
    val_labels = [int(float(i)) for i in val_labels]

    return tra_images, tra_labels, val_images, val_labels

调用函数中输入参数打印信息,输出结果如下:

tra_images

['E:\\CNN\\TestImage/speed_detecter/20170929112354600_28.jpg', 'E:\\CNN\\TestImage/speed_detecter/20170930070459340_8.jpg', 'E:\\CNN\\TestImage/speed_detecter/20170928124932890_10.jpg', 'E:\\CNN\\TestImage/speed_detecter/20170929094427000_10.jpg', 'E:\\CNN\\TestImage/speed_detecter/20170901083002860_24.jpg', 'E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值