keras分类猫狗数据(上)数据预处理
原创
©著作权归作者所有:来自51CTO博客作者李上花开的原创作品,请联系作者获取转载授权,否则将追究法律责任
keras分类猫狗数据(上)数据预处理keras分类猫狗数据(中)使用CNN分类模型keras分类猫狗数据(下)迁移学习keras分类猫狗数据(番外篇)深度学习CNN连接SVM分类
数据来源:https://www.kaggle.com/c/dogs-vs-cats
在本部分数据预处理,下载并解压(如本人所有图片解压后位于E:/MLdata/kaggle_Dogsvs.Cats/train/
)。
本文后续部分,将要取其中各1000张猫狗训练数据,各500张猫狗测试数据(共3000张),并分别放到类别文件夹中。最终如下结构。

1 .如下代码,获取所有猫狗文件路径,可以看出共分别有12500,12500猫狗图片。
import os
train='E:/MLdata/kaggle_Dogsvs.Cats/train/'
dogs=[train+i for i in os.listdir(train) if 'dog' in i]
cats=[train+i for i in os.listdir(train) if 'cat' in i]
print(len(dogs),len(cats))
12500 12500
2 . 如下代码,将训练用到
张图片,测试的
张图片放置指定文件夹,共计
。读者可以充分使用
提高分数。
import os
import shutil
def createDir(path):
if not os.path.exists(path):
try:
os.makedirs(path)
except:
print("创建文件夹失败")
exit(1)
path="E:/MLdata/kaggle_Dogsvs.Cats/min_trainfordata/"
createDir(path+"train/dogs")
createDir(path+"train/cats")
createDir(path+"test/dogs")
createDir(path+"test/cats")
for dog,cat in list(zip(dogs,cats))[:1000]:
shutil.copyfile(dog,path+"train/dogs/"+os.path.basename(dog))
print(os.path.basename(dog)+"操作成功")
shutil.copyfile(cat, path + "train/cats/" + os.path.basename(cat))
print(os.path.basename(cat) + "操作成功")
for dog, cat in list(zip(dogs, cats))[1000:1500]:
shutil.copyfile(dog, path + "test/dogs/" + os.path.basename(dog))
print(os.path.basename(dog) + "操作成功")
shutil.copyfile(cat, path + "test/cats/" + os.path.basename(cat))
print(os.path.basename(cat) + "操作成功")