keras猫狗大战

有些话、适合烂在心里 提交于 2019-12-20 09:30:29

先划分数据集程序训练集中猫狗各12500张现在提取1000张做为训练集,500张作为测试集,500张作为验证集:

# -*- coding: utf-8 -*-import os, shutiloriginal_dataset_dir = '/home/duchao/projects(my)/keras/kagge/train'  # 原始文解压目录base_dir = '/home/duchao/projects(my)/keras/kagge/small_data'# 创建新的文件夹os.mkdir(base_dir)# 分别对应划分好的训练(1000),验证(500)和测试目录(500)train_dir = os.path.join(base_dir, 'train')os.mkdir(train_dir)validation_dir = os.path.join(base_dir, 'validation')os.mkdir(validation_dir)test_dir = os.path.join(base_dir, 'test')os.mkdir(test_dir)# 猫的训练目录train_cats_dir = os.path.join(train_dir, 'cats')os.mkdir(train_cats_dir)# 狗的训练目录train_dogs_dir = os.path.join(train_dir, 'dogs')os.mkdir(train_dogs_dir)# 猫的验证目录validation_cats_dir = os.path.join(validation_dir, 'cats')os.mkdir(validation_cats_dir)# 狗的验证目录validation_dogs_dir = os.path.join(validation_dir, 'dogs')os.mkdir(validation_dogs_dir)# 猫的测试目录test_cats_dir = os.path.join(test_dir, 'cats')os.mkdir(test_cats_dir)# 狗的测试目录test_dogs_dir = os.path.join(test_dir, 'dogs')os.mkdir(test_dogs_dir)# 将前1000张猫的图像复制到train_cats_dirfnames = ['cat.{}.jpg'.format(i) for i in range(1000)]  # format函数通过{}来指点字符串处理的位置,储存为列表形式for fname in fnames:    src = os.path.join(original_dataset_dir, fname)    dst = os.path.join(train_cats_dir, fname)    shutil.copyfile(src, dst)  # copyfile实现将一个文件中的内容复制道另一个文件中去,src是来源文件;dst是目标文件# 将剩下的500张图像复制到validation_cats_dirfnames = ['cat.{}.jpg'.format(i) for i in range(1000, 1500)]for fname in fnames:    src = os.path.join(original_dataset_dir, fname)    dst = os.path.join(validation_cats_dir, fname)    shutil.copyfile(src, dst)# 将接下来500张图片复制到test_cats_dirfnames = ['cat.{}.jpg'.format(i) for i in range(1500, 2000)]for fname in fnames:    src = os.path.join(original_dataset_dir, fname)    dst = os.path.join(test_cats_dir, fname)    shutil.copyfile(src, dst)# 将前1000张狗的图片复制到train_dogs_dirfnames = ['dog.{}.jpg'.format(i) for i in range(1000)]for fname in fnames:    src = os.path.join(original_dataset_dir, fname)    dst = os.path.join(train_dogs_dir, fname)    shutil.copyfile(src, dst)# 将接下来500张图像复制到validation_dogs_dirfnames = ['dog.{}.jpg'.format(i) for i in range(1000, 1500)]for fname in fnames:    src = os.path.join(original_dataset_dir, fname)    dst = os.path.join(validation_dogs_dir, fname)    shutil.copyfile(src, dst)# Copy next 500 dog images to test_dogs_dirfnames = ['dog.{}.jpg'.format(i) for i in range(1500, 2000)]for fname in fnames:    src = os.path.join(original_dataset_dir, fname)    dst = os.path.join(test_dogs_dir, fname)    shutil.copyfile(src, dst)print('total training cat images:', len(os.listdir(train_cats_dir)))    #os.listdir列举指定目录中的文件名print('total training dog images:', len(os.listdir(train_dogs_dir)))print('total validation cat images:', len(os.listdir(validation_cats_dir)))print('total validation dog images:', len(os.listdir(validation_dogs_dir)))print('total test cat images:', len(os.listdir(test_cats_dir)))print('total test dog images:', len(os.listdir(test_dogs_dir)))
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!