最新可行 ImageNet2012的验证集val数据分为1000类 及对应txt标签文件

Iamge2012下载解压后发现训练集有对应1000类及文件,而验证集只有50000张凌乱的图片,听说能用.sh文件自动分类但我也没有找到这个文件,并且.sh是Linux的指令,我的windows是不行滴,索性手写一个分类脚本,别的博主给对应的标签文件大部分过期了,别担心,我带着文件来啦。

1.创建1000个对应训练集空文件夹

复制放在github里的mkdir.txt标签信息,粘贴在新建的一个mkdir.txt
在这里插入图片描述
代码:(因为路径都用绝对路径,python脚本路径随意,注意代码中只用改变两个注释处的路径即可)

import os

files_name = []

# 这里是打开mkdir.txt的路径
for line in open(r"E:\ILSVRC2012\done\mkdir.txt", "r"):  
    files_name.append(line[9:18])
    
# print(files_name[0],files_name[-1])
# print(len(files_name))

for each in files_name:

    # 这里是打开要放一千个文件夹的路径
    os.makedirs("E://ILSVRC2012//done//after_categories//{}".format(each))
print("make dir done")

完成后就得到了一千个对应训练集的空文件夹
在这里插入图片描述

2.把五千张验证图分别放入文件夹

对应的标签文件我放在categories.txt里了,点击Download自取
在这里插入图片描述
内容有五千行,每行一张图片的Linux移动指令
在这里插入图片描述
代码:(python脚本的位置随意,代码中也只用改三个注释处路径的内容即可)

import sys
# import cv2
import matplotlib.pyplot as plt
import re,os
from PIL import Image
import numpy as np

lines = []

# 这个是放categories.txt的路径
for each in open(r"D:\Users\CaiJiyuan\Desktop\categories.txt", "r"):  

    lines.append((each[3:31],each[32:41]))
    
# print(len(lines))

for i,item in enumerate(lines):
    if i%100==0:
        print(i,'done')

    #这个是获取原始验证集ILSVRC2012_img_val中每个图像的路径
    image = Image.open('E://ILSVRC2012//done//ILSVRC2012_img_val//{}'.format(item[0]))  
    
    
    #这个是上面的代码里放一千个空文件夹的路径
    path = 'E://ILSVRC2012//done//after_categories//{}'.format(item[1])
    image.save(os.path.join(path, item[0]))
    image.close()

大概40分钟以后慢慢跑完了
在这里插入图片描述

验证集里每个文件夹中有五十张图,并且文件夹与训练集一一对应:

在这里插入图片描述

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤米尼克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值