本文主要介绍fastai自带的例子,即使用fastai实现猫狗分类。
1、导入包
from fastai import *
from fastai.vision import *
2、下载数据
# 导入数据
path = untar_data(URLs.DOGS)
path
Output: PosixPath('/home/cc/.fastai/data/dogscats')
3、显示一张训练数据图片
data = ImageDataBunch.from_folder(path, ds_tfms=get_transforms(), size=224).normalize(imagenet_stats)
img,label = data.valid_ds[-1]
img.show(title=label)
4、使用resnet34进行训练:
learn = create_cnn(data, models.resnet34, metrics=accuracy)
learn.fit_one_cycle(1)
Output:
Total time: 50:37
epoch train_loss valid_loss accuracy
1 0.047413 0.024584 0.991000 (50:37)
learn.unfreeze()
learn.fit_one_cycle(6, slice(1e-5,3e-4), pct_start=0.05)
Ouput:
accuracy(*learn.TTA())
Output:
5、使用restnet50进行训练:
learn = create_cnn(data, models.resnet50, metrics=accuracy)
learn.fit_one_circle(6)
Output:
learn.unfreeze()
learn.fit_one_circle(6,slice(1e-5, 3e-4), pct_start=0.05)
Output:
准确率:
accuracy(*learn.TTA())
Output:
注:由于时间关系其他的训练结果不再给出。
欢迎关注我的公众号:
编程技术与生活(ID:hw_cchang)