算法与深度学习·

实战Kaggle比赛:狗的品种识别(ImageNet Dogs)

首发于 CSDN原文链接

本篇目录2 节

在这场比赛中,我们将识别120

类
不同品种的狗。 这个数据集实际上是著名的ImageNet的数据集子集。
这里我们选择小批量进行训练出于学习目的

代码实现

先导入
import os import torch import torchvision from torch import nn from d2l import torch as d2l
下载小数据集
d2l.DATA_HUB['dog_tiny'] = (d2l.DATA_URL + 'kaggle_dog_tiny.zip', '0cb91d09b814ecdc07b50f31f8dcad3e81d6a86d') # 如果使用Kaggle比赛的完整数据集,请将下面的变量更改为False demo = True if demo: data_dir = d2l.download_extract('dog_tiny') else: data_dir = os.path.join('..', 'data', 'dog-breed-identification')
划分数据
def reorg_dog_data(data_dir, valid_ratio): labels = d2l.read_csv_labels(os.path.join(data_dir, 'labels.csv')) d2l.reorg_train_valid(data_dir, labels, valid_ratio) d2l.reorg_test(data_dir) batch_size = 32 if demo else 128 valid_ratio = 0.1 reorg_dog_data(data_dir, valid_ratio)
数据增强
transform_train = torchvision.transforms.Compose([ # 随机裁剪图像,所得图像为原始面积的0.08~1之间,高宽比在3/4和4/3之间。 # 然后,缩放图像以创建224x224的新图像 torchvision.transforms.RandomResizedCrop(224,scale=(0.8,1.0),ratio=(0

评论加载中…