在这场比赛中,我们将识别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
评论加载中…