这部分是利用pytorch进行迁移学习,迁移的是VGG16
代码基于python3.7, pytorch 1.0,cuda 10.0 .
import torch
import torchvision
from torch.autograd import Variable
from torchvision import datasets, transforms, models
import os # os包集成了一些对文件路径和目录进行操作的类
import matplotlib.pyplot as plt
import time
# 读取数据
data_dir = 'DogsVSCats'
data_transform = {
x:transforms.Compose([transforms.Scale([224, 224]),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5,0.5,0.5],std=[0.5,0.5,0.5])
]) for x in ['train', 'valid']} # 这一步类似预处理,相比于手动搭建模型的方法,这里增加了预处理,图像大小为vgg的标准输入
image_datasets = {
x:datasets.ImageFolder(root = os.path.join(data_dir,x),
transform = data_transform[x]) for x in ['train', 'valid']} # 这一步相当于读取数据
dataloader = {
x:torch.utils.data.DataLoader(dataset = image_datasets[x],
batch_size = 16,
shuffle = True) for x in ['train', 'valid'