将某一类下面的具体类别数据集整合在一起,并按照7:3分为训练集、测试集

1、首先将类别目录下的具体类别的数据集转移到一个大部目录下
将某一类下面的具体类别数据集整合在一起,并按照7:3分为训练集、测试集_第1张图片这是鸟的数据集,下面分成200类。将这200类下的图片全部按照voc数据集命名格式转移到bird_image文件目录下:

from PIL import Image
import glob
url = '/home/lf/桌面/bird_image/images/'#图片存储的文件夹名称
n=11788#图片的数量
array = np.arange(n)#产生长度为n的序列
np.random.shuffle(array)#将arrray序列随机排列
#把path文件夹下以及其子文件下的所有.jpg图片移动到new_path文件夹下
def moveImg(path,new_path):
    img=Image.open(path)
    img.save(os.path.join(new_path,os.path.basename(path)))
bird_path="/home/lf/桌面/bird_image/bird_image"
listName=os.listdir(url)
#转移数据集
for i in range(len(listName)):
    name=listName[i]
    image_files=url+name
    for image_name in glob.glob(image_files+"/*.jpg"):
        moveImg(image_name,bird_path)    
bird_list=os.listdir(bird_path)
#将转移的数据集规范命名格式
for i in range(len(bird_list)):
    if bird_list[i].endswith(".jpg"):
        src=os.path.join(os.path.abspath(bird_path),bird_list[i])
        dst=os.path.join(os.path.abspath(bird_path),(str(i).zfill(6)+'.jpg'))
        os.rename(src,dst)

2、将数据集分别按照7:3的比例分成训练集、测试集,并将数据集图片的名称分别保存到txt文件下
new_path=’/home/lf/桌面/bird_image/bird_test’

# 30%的数据生成测试集
new_path='/home/lf/桌面/bird_image/bird_train/'    
dir1="/home/lf/桌面/bird_image/bird_train/"
fp1=open("/home/lf/桌面/bird_image/train.txt","a")
for filename in os.listdir(dir1):
    # print(filename)
    fp1.write(filename)
    fp1.write("\n")
fp1.close()
dir2="/home/lf/桌面/bird_image/bird_test/"
fp2=open("/home/lf/桌面/bird_image/test.txt","a")
for filename in os.listdir(dir2):
    fp2.write(filename)
    fp2.write("\n")
fp2.close()

将某一类下面的具体类别数据集整合在一起,并按照7:3分为训练集、测试集_第2张图片

你可能感兴趣的:(深度学习与机器学习)