使用VGG模型进行猫狗大战
1、大赛简介
Kaggle 中的猫狗大战竞赛题目。在这个比赛中,有25000张标记好的猫和狗的图片用做训练,有12500张图片用做测试。这个竞赛是2013年开展的,如果你能够达到80%的准确率,在当年是一个 state-of-the-art 的成绩。
2、数据准备
- 这里我将猫狗大赛的数据同老师的数据集一起写。因为猫狗大赛官网的训练数据是混在一起的,换句话说,就是cat和dog没有分开在两个文件夹,所以直接导入会产生错误,于是我就将官网的20000个数据下载下来。
- 另外,官网的test数据下载并压缩后,上传到谷歌云盘,就能在直接解压。
! unzip testing.zip
! wget http://fenggao-image.stor.sinaapp.com/dogscats.zip
! unzip dogscats.zip
- 接下来就是对数据进行处理。
- 将数据拆分为训练集和有效集,在他整理的数据集中,猫和狗的图片放在单独的文件夹中, 同时还提供了一个Validation数据。
normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
vgg_format = transforms.Compose([
transforms.CenterCrop(224),
transforms.ToTensor(),
normalize,
])
data_dir = '/content/dogscats'
dsets = {x: datasets.ImageFolder(os.path.join(data_dir, x), vgg_format)
for x in ['train', 'valid']}
dset_sizes = {x: len(dsets[x]) for x in ['train', 'valid']}
dset_classes = dsets['train'].classes
loader_train = tor