Pytorch learning Chapter 3 Image classification 之建立train/valid文件夹

深度学习猫狗图片分类之建立train/valid文件夹

## 从www.kaggle.com/c/dogs-vs-cats/data 下载数据,数据包含25000个如cat.0.jpg, dag.0.jpg图片,目的建立train和valid文件夹,分别建立cat和dog子文件夹,并存图片。train 23000张, valid 2000张图片。

import glob
import os  # operating system
import shutil  # Advanced file, folder, compressed package processing module
import re
import numpy as np

Image_path = './train/'
files = glob.glob(os.path.join(Image_path,'*.jpg'))
no_of_images = len(files)
shuffle = np.random.permutation(no_of_images)  # random permutation

data_dir = 'dogsandcats data'
if os.path.exists(data_dir): shutil.rmtree(data_dir)  # delete a directory tree
os.mkdir(data_dir)

for t in ['valid','train']:
    for folder in ['dog/','cat/']:
        os.makedirs(os.path.join(data_dir,t,folder))

    if t == 'valid':
        # copy a small subset of images into the validation folder
        for i in shuffle[:2000]:  # fetch front 2000 images
            folder = re.split(r'[/\\]', files[i])[-1].split('.')[0]  # return such as 'cat' according to pic's name
            image = re.split(r'[/\\]', files[i])[-1]  # return such as 'cat.0.jpg'
            os.rename(files[i], os.path.join('./' + data_dir, t, folder, image))
    else:
        # copy a small subset of images into the training folder
        for i in shuffle[2000:]:  # other images
            folder = re.split(r'[/\\]', files[i])[-1].split('.')[0]  # return such as 'cat' according to pic's name
            image = re.split(r'[/\\]', files[i])[-1]  # return such as 'cat.0.jpg'
            os.rename(files[i], os.path.join('./' + data_dir, t, folder, image))

效果如下:
在这里插入图片描述
为后续训练/验证作准备。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值