0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何制作能够分类120种小狗的图像分类器

电子工程师 来源:lq 2019-02-26 09:42 次阅读

这篇文章会讲解如何制作能够分类120种小狗的图像分类器。

这篇文章中所讲述的内容都是基于colab notebook和fastai技术深度学习的应用。

为什么使用colab?

使用colab的好处是,你不需要有任何显卡GPU,colab中提供了一块免费的k80带12G显存的GPU

colab是google提供的一个免费的Jupyter notebook的环境,可以省去安装它的功夫

为什么使用fastai

fastai是一种超级简洁的深度学习工具,代码上甚至比当前Keras还要简洁。

底层是pytorch,能够提供高速的处理性能。

和之前文章中的两个物种(猫和狗)的分类略有不同,这次使用的数据集全部是狗,需要把这些狗分到不同的类别中。也就是说,图片之间特征的区别的差异要比之前猫和狗分类的来的更加细微。

好吧,接下来我们看看如何动手制作。

1.在colab的作业本中配置fastai的环境

!curlhttps://course.fast.ai/setup/colab|bash

2.导入fastai包

fromfastaiimport*fromfastai.visionimport*

3.加载kaggle.json

这里我们准备从kaggle下载所需要的狗的数据集,如果你可以从其他地方得到数据集,那么可以省略步骤3和4,按照自己的方法在环境中导入数据集即可。

!mkdir/content/.kaggle/!mkdir/content/data/dogsbreed/PATH="/content/data/dogsbreed/"fromgoogle.colabimportfiles#loadfromuploaddialoguploaded=files.upload()forfninuploaded.keys():withopen(f'/content/.kaggle/{fn}','wb')asf:f.write(uploaded[fn])

4.安装kaggle环境

!chmod600/content/.kaggle/kaggle.json!pipinstallkaggle!cp/content/.kaggle/kaggle.json~/.kaggle/kaggle.json!kaggleconfigset-npath-v{/content}importkaggle!kagglecompetitionsdownload-p/content/data/dogsbreed/dog-breed-identification

从结果中可以看到,我们已经从kaggle成功的下载了数据集文件。

5.验证GPU

torch.cuda.is_available()#Truetorch.backends.cudnn.enabled#True

6.解压缩文件

!cd/content/data/dogsbreed&&unziplabels.csv.zip!cd/content/data/dogsbreed&&unzipsample_submission.csv.zip!cd/content/data/dogsbreed&&unziptest.zip!cd/content/data/dogsbreed&&unziptrain.zip

7.读取label.csv

labels_df=pd.read_csv(f'{PATH}labels.csv')labels_df.head()

这里我们可以看到labels.csv中的前五条数据

8.查看狗的类别

labels_df.pivot_table(index='breed',aggfunc=len).sort_values('id',ascending=False)

这里可以看到一共有120行数据,也就是120种狗的类别,以及每种类别里面有多少条数据。

9.加载数据集并显示

data=ImageDataBunch.from_csv(PATH,folder='train',valid_pct=0.2,ds_tfms=get_transforms(),size=224,test='test',suffix='.jpg',bs=64).normalize(imagenet_stats)data.show_batch(rows=3,figsize=(10,12))

如果一切顺利,这里会显示出9张狗的图片,并且图片上方会显示相应的狗的类别。

如果只显示了图片,而图片上的标签不是类别的话,那说明数据导入部分存在问题。

OK,我们继续下一步。

10.下载与训练模型并微调

learner=create_cnn(data,models.resnet101,metrics=[accuracy])learner.fit_one_cycle(10)

这里我们设置了10个epoch,会稍微花费点时间大约40分钟。

可以看到,在最后一个epoch时候,我们的精度在89%。当然我们还可以继续调优:)

或者直接从零开始对每一层权重的训练,这都是可以的。

到这里我们就已经成功的完成了一个120种狗狗的图片分类器的制作啦,怎么样?是不是很简单?希望这篇文章可以给每一个前来阅读的朋友带来收获,对深度学习,图像分类有一个直接的体会。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4415

    浏览量

    126652
  • 图像
    +关注

    关注

    2

    文章

    1063

    浏览量

    40038
  • 分类器
    +关注

    关注

    0

    文章

    152

    浏览量

    13111

原文标题:120种小狗图像傻傻分不清?用fastai训练一个分类器

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数字电视的分类

    数字电视的分类  (1)按信号传输方式分类:可以分为地面无线传输(地面数字电视)、卫星传输(卫星数字电视)、有线传输(有线数字电视)三类。   (2)按产品类型分类:可以分为数字电视显示
    发表于 08-28 14:26

    基于多通道分类合成的SAR图像分类研究

    【作者】:李长春;冒亚明;孙灏;慎利;【来源】:《计算机与现代化》2010年03期【摘要】:SAR具有全天时、全天候工作能力,且能够提供高分辨率图像数据。SAR图像分类是SAR
    发表于 04-23 11:52

    延长该如何分类

    、DVI延长、SDI延长、VGA延长等三、传输介质分类传输介质在延长信号传输中,严重影响了信号传输的距离。一般的传输介质有光纤和网线两
    发表于 02-02 09:50

    线性分类

    的分数。可以看到马的模板看起来似乎是两个头的马,这是因为训练集中的马的图像中马头朝向各有左右造成的。线性分类将这两情况融合到一起了。类似的,汽车的模板看起来也是将几个不同的模型融合
    发表于 10-09 09:40

    区分图像分类方法是什么

    区分图像分类方法
    发表于 05-07 09:37

    图像分类Caltech 256数据集

    教程图像分类 Caltech 256​数据集
    发表于 05-12 09:04

    一种新的图像定位和分类系统实现方案

    首先简单介绍了图像定位和分类系统的基本概念。然后分析了几种图像定位和分类系统的实现方式与性能。在此基础上,提出了一种新型图像
    发表于 07-30 16:29 25次下载

    基于Brushlet和RBF网络的SAR图像分类

    针对SAR图像纹理特征丰富的特点,本文提出一种新的SAR图像分类方法:通过提取Brushlet变换的能量及相位信息作为SAR图像的纹理特征,然后输入径向基函数RBF网络对
    发表于 12-18 16:20 20次下载

    基于yamaguchi分解模型的全极化SAR图像分类

    基于yamaguchi分解模型的全极化SAR图像分类
    发表于 06-16 09:51 11次下载

    双面板制作分类流程-图

    双面板制作分类流程
    发表于 12-28 17:21 1810次阅读
    双面板<b class='flag-5'>制作</b><b class='flag-5'>分类</b>流程-图

    基于边缘检测的多类别医学图像分类方法_沈健

    基于边缘检测的多类别医学图像分类方法_沈健
    发表于 01-08 11:13 0次下载

    超像素词包模型与SVM分类图像标注_於敏

    超像素词包模型与SVM分类图像标注_於敏
    发表于 03-19 19:03 1次下载

    简单好上手的图像分类教程!

    简单好上手的图像分类教程!构建图像分类模型的一个突破是发现卷积神经网络(CNN)可以用来逐步地提取图像内容的更高层的表示。CNN不是预先处理
    的头像 发表于 05-31 16:36 7977次阅读
    简单好上手的<b class='flag-5'>图像</b><b class='flag-5'>分类</b>教程!

    图像分类任务的各种tricks

    计算机视觉主要问题有图像分类、目标检测和图像分割等。针对图像分类任务,提升准确率的方法路线有两条,一个是模型的修改,另一个是各种数据处理和训
    的头像 发表于 09-14 16:42 923次阅读

    带有EDEG IMPULSE的图像分类

    电子发烧友网站提供《带有EDEG IMPULSE的图像分类器.zip》资料免费下载
    发表于 10-31 09:44 0次下载
    带有EDEG IMPULSE的<b class='flag-5'>图像</b><b class='flag-5'>分类</b>器