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
    +关注

    关注

    28

    文章

    4700

    浏览量

    128694
  • 图像
    +关注

    关注

    2

    文章

    1083

    浏览量

    40414
  • 分类器
    +关注

    关注

    0

    文章

    152

    浏览量

    13173

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    线性分类

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

    区分图像分类方法是什么

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

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

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

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

    针对SAR图像纹理特征丰富的特点,本文提出一新的SAR图像分类方法:通过提取Brushlet变换的能量及相位信息作为SAR图像的纹理特征,
    发表于 12-18 16:20 20次下载

    图像分类的方法之深度学习与传统机器学习

    图像分类,顾名思义,是一个输入图像,输出对该图像内容分类的描述的问题。它是计算机视觉的核心,实际应用广泛。
    发表于 09-28 19:43 0次下载

    融合多尺度分割图像分类

    面对遥感图像日益增长的分辨率,面向对象的分类处理方法相较于传统的基于像素的分类方法愈来愈有优势。针对其分割处理环节仍存在过分割以及欠分割现象而导致分类精度降低的问题,本文提出一
    发表于 11-10 15:36 6次下载
    融合多尺度分割<b class='flag-5'>图像</b><b class='flag-5'>分类</b>

    新的基于全局特征的极光图像分类方法

    提出了一新的基于全局特征的极光图像分类方法,在该方法中,极光图像通过Radon变换投影到Radon域,然后计算投影矩阵中每列的方差作为特征,为了实现方向变化不变性,对该方差序列进行循
    发表于 11-30 14:13 1次下载
    一<b class='flag-5'>种</b>新的基于全局特征的极光<b class='flag-5'>图像</b><b class='flag-5'>分类</b>方法

    基于显著性检测的图像分类算法

    针对传统的图像分类方法对整个图像不分等级处理以及缺乏高层认知的问题,提出了一基于显著性检测的图像分类
    发表于 01-04 13:47 0次下载

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

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

    针对遥感图像场景分类的多粒度特征蒸馏方法

    嵌入式设备上的应用。提出一针对遥感图像场景分类的多粒度特征蒸馏方法,将深度网络不同阶段的特征与最终的类别概率同时作为浅层模型的监督信号,使得浅层模型能够同时学习髙级与低级的语义特征,
    发表于 03-11 17:18 20次下载
    针对遥感<b class='flag-5'>图像</b>场景<b class='flag-5'>分类</b>的多粒度特征蒸馏方法

    带有EDEG IMPULSE的图像分类

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

    使用ML制作Pi垃圾分类

    电子发烧友网站提供《使用ML制作Pi垃圾分类.zip》资料免费下载
    发表于 11-07 11:00 0次下载
    使用ML<b class='flag-5'>制作</b>Pi垃圾<b class='flag-5'>分类</b><b class='flag-5'>器</b>

    如何区分图像分类和目标检测技术

    目标检测的问题定义是确定目标在给定图像中的位置,如目标定位,以及每个目标属于哪个类别,即目标分类。简单地说,目标检测是一图像分类技术,除了
    发表于 07-11 12:50 505次阅读

    计算机视觉怎么给图像分类

    图像分类是计算机视觉领域中的一项核心任务,其目标是将输入的图像自动分配到预定义的类别集合中。这一过程涉及图像的特征提取、特征表示以及分类
    的头像 发表于 07-08 17:06 506次阅读