网易首页 > 网易号 > 正文 申请入驻

深度学习入门教程:分类猫和狗

0
分享至

本文将一步步建立和训练一个深度学习模型,以达到分类猫和狗的目的。阅读者只要有一些高中数学基础和python编程经验就足够了!

1.安装程序

为了简单起见,我们将在云GPU(什么是GPU)上运行模型。可以通过以下链接了解GPU在深度学习中的重要性:https://towardsdatascience.com/what-is-a-gpu-and-do-you-need-one-in-deep-learning-718b9597aa0d 。

有很多服务提供免费和付费的云GPU实例。我们将使用Gradient,它提供免费的GPU和CPU实例层。我们也将使用fast.ai的vision库来创建模型。

  1. 首先点击这里创建一个Gradient帐户:https://console.paperspace.com/signup?gradient=true ;
  2. 登录你的帐户并选择“Gradient”;
  3. 单击“Notebook”;
  4. 为实例命名(可选);
  5. 选择Paperspace + Fast.AI基本容器;

  1. 选择任意一个免费的GPU实例;

  1. 单击“Create Notebook”;

你的Notebook 将从挂起→设置→运行!

  1. 单击“OPEN V1(CLASSIC)”按钮;

对于这个模型,我们将从Bing和DuckDuckGo上获取图像,它们将作为数据集。我们将安装Joe Dockrill编写的jmd_imagescraper库,这将为我们完成任务。

  1. 单击 New →Terminal。

键入并单击enter:

!pipinstall-qjmd_imagescraper

有关库的更多信息,请访问其官方页面:https://joedockrill.github.io/blog/2020/09/18/jmd-imagescraper-library/

这把我们带到了设置的最后。关闭终端,再次打开Notebook。编码时间到了!

Jupyter Notebook

Jupyter Notebook是一个web应用程序,允许你创建包含实时代码、公式和文本的文档。你可以做任何事情,从编写代码到发布,以及使用Voilá构建独立的web应用程序!我们将在Gradient提供的Jupyter Notebook上编写和执行代码。

Jupyter Notebook由许多单元组成,可以通过确定执行单元格的顺序来控制工作流。

单击New→Python3打开一个新的Notebook。

你可以编写文本(在标记单元格中)或编写python代码(在代码单元格中)并按如下方式执行:

使用Run和add cells选项分别执行代码和添加更多单元格。

2.代码

可以把每个代码块复制到不同的单元上,然后运行它们。

我们先导入fast.ai的vision库和jmd_imagescraper。

!pipinstall-Uqqfastbookimportfastbook#导入fast.ai库fromfastbookimport*#别担心,它被设计成与import*一起工作fastbook.setup_book()fromfastai.vision.widgetsimport*#导入图片爬取器,website:https://joedockrill.github.io/blog/2020/09/18/jmd-imagescraper-library/fromjmd_imagescraper.coreimport*frompathlibimportPathfromjmd_imagescraper.imagecleanerimport*

因为我们的目标是对猫和狗的图像进行分类,所以可以建立一个名为“animals”的文件夹,我们可以下载并保存图像。

最后一行将path变量设置为当前工作目录中的“animals”文件夹。

animals=['cat','dog']path=Path().cwd()/"animals"#指定当前工作目录的路径

从jmd_imagescraper库调用duckduckgo_search()函数,该函数接受以下内容作为输入:

  1. 下载目录(上面指定的路径变量);
  2. 文件夹名称(cat);
  3. 搜索DuckDuckGo(“猫”)的关键字;
  4. 要下载的图像数(100)。

duckduckgo_search(path,"cat","cats",max_results=100)#下载100张“猫”图片并保存到path/cat中

等到它搜索图像,下载并直接保存到“animals”中名为“cat”的文件夹中。结果应该如下所示:

现在让我们对狗的图像做同样的处理。

duckduckgo_search(path,"dog","dogs",max_results=100)#下载100张“狗”图片并保存到path/dog中

通常会有一些不相关的图像,这会妨碍训练,所以我们删除个别文件。Jupyter提供了一个删除无关图像的交互式GUI。

display_image_cleaner(path)

在文件夹之间切换并删除不相关的图像。我发现一些像这样的图片偷偷地进入了猫和狗的系列。

fns=get_image_files(path)fns

查找失败的下载并从文件夹中取消链接。

failed=verify_images(fns)#寻找非图像文件failed

failed.map(Path.unlink);#从文件夹中取消失败文件的链接

现在让我们创建一个Datablock对象,它将图像发送到DataLoaders类。DataLoaders类将给定的数据转换为学习者可以解释的信息。

直觉上,学习者是一个观察所有给定图像并找到模式的人。如果遇到复杂的关键字,不要担心,一旦你运行模型,一切都会变得有意义。

animals=DataBlock(blocks=(ImageBlock,CategoryBlock),get_items=get_image_files,splitter=RandomSplitter(valid_pct=0.2,seed=42),#将数据集拆分为训练集和验证集get_y=parent_label,item_tfms=RandomResizedCrop(224,min_scale=0.5),batch_tfms=aug_transforms())

需要注意的是在第4行中,我们保留了20%的数据,以便在每个称为epoch训练结束时检查模型。

创建一个名为dls的DataLoaders对象。

dls=animals.dataloaders(path)

看看dls对象中单个批处理中的几个图像。

dls.valid.show_batch(max_n=4,nrows=1)

要求一个学习者在4个不同的训练迭代或时期中根据输入图像进行学习。这需要一些时间,这取决于你的网络速度。

learn=cnn_learner(dls,resnet18,metrics=error_rate)#训练我们的模型learn.fine_tune(4)

你可能不会看到与图像中相同的结果,但是错误率应该小于0.05。

现在我们为验证集绘制一个混淆矩阵。混淆矩阵告诉我们验证集中有多少图像被正确或错误地分类。

interp=ClassificationInterpretation.from_learner(learn)interp.plot_confusion_matrix()#绘制混淆矩阵

混淆矩阵说明我们的分类器有多好。深蓝色对角线上显示的数字告诉我们正确预测图像的数量。因此分类器做得很好!

我们将在下一行代码中看到两幅错误预测的图片。

interp.plot_top_losses(5,nrows=1)

现在让我们对模型进行真正的测试,好吗?下载你选择的猫或狗图像并保存在本地。

learn.export()path=Path()path.ls(file_exts='.pkl')learn_inf=load_learner(path/'export.pkl')btn_upload=widgets.FileUpload()#显示可用于从系统上传图像的小部件btn_upload

这将在你的Jupyter Notebook中创建一个小部件,如下所示:

点击上传并选择你的图片。

现在我们调整图像大小,以便模型可以预测。最后一行显示调整大小的图像。

img=PILImage.create(btn_upload.data[-1])out_pl=widgets.Output()out_pl.clear_output()without_pl:display(img.to_thumb(128,128))#调整图像的大小out_pl

下面的代码预测图像中的动物,并以我们可以理解的格式显示它。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
河北一场高温,彻底撕开近90万新能源汽车的弊端,车主苦不堪言

河北一场高温,彻底撕开近90万新能源汽车的弊端,车主苦不堪言

娱乐圈的笔娱君
2024-06-19 07:55:55
刷爆热搜的17岁数学天才姜萍,从上神坛到被扒捞女只花了2天?

刷爆热搜的17岁数学天才姜萍,从上神坛到被扒捞女只花了2天?

新氧
2024-06-19 10:10:42
菲方称中国海警在仁爱礁附近登上菲船只缴获枪支 外交部回应

菲方称中国海警在仁爱礁附近登上菲船只缴获枪支 外交部回应

财联社
2024-06-19 15:50:06
笑不活了!开使馆车叫嚣的秘书长余女士道歉了,网友不买账!

笑不活了!开使馆车叫嚣的秘书长余女士道歉了,网友不买账!

皖声微言
2024-06-19 10:15:21
葡中场真核疑不爽C罗:总得把球给他!专家:队友们并不信任C罗!

葡中场真核疑不爽C罗:总得把球给他!专家:队友们并不信任C罗!

风过乡
2024-06-19 07:49:26
打脸了!北大网友怀疑姜萍考试作弊,中科院博士说她写的比我还快

打脸了!北大网友怀疑姜萍考试作弊,中科院博士说她写的比我还快

云舟史策
2024-06-18 18:42:31
原来是惯犯?网曝“外交豁免权”女子,边开车边用手机录像,并骂其他司机有毛病

原来是惯犯?网曝“外交豁免权”女子,边开车边用手机录像,并骂其他司机有毛病

可达鸭面面观
2024-06-19 15:59:06
他急得“狂吐象牙”:若不监视中国各行各业,会任由称王称霸

他急得“狂吐象牙”:若不监视中国各行各业,会任由称王称霸

观察者网
2024-06-19 13:41:07
南医大最新回应!俞莉博士自找麻烦,已被停诊,校领导正开会研究

南医大最新回应!俞莉博士自找麻烦,已被停诊,校领导正开会研究

校长侃财
2024-06-19 11:58:24
一极端泛蒙主义歌手要在中国开演唱会,曾在屠宰场拍MV且歌词过激

一极端泛蒙主义歌手要在中国开演唱会,曾在屠宰场拍MV且歌词过激

不掉线电波
2024-06-19 13:24:24
日媒曝仁爱礁冲突战果:7名菲兵受伤, 1人手指截断,8枝枪被没收

日媒曝仁爱礁冲突战果:7名菲兵受伤, 1人手指截断,8枝枪被没收

大风文字
2024-06-18 19:21:31
6月19日俄乌最新:400俄军投降?

6月19日俄乌最新:400俄军投降?

西楼饮月
2024-06-19 14:09:14
上海地铁站持刀伤3人后续:行凶者身份曝光,目击者透露案发细节

上海地铁站持刀伤3人后续:行凶者身份曝光,目击者透露案发细节

洛洛女巫
2024-06-19 11:23:22
“拜登身体机能衰退”?美官方回应

“拜登身体机能衰退”?美官方回应

新京报
2024-06-19 08:40:36
狗仔曝陈晓宁可净身出户也要离婚,已摘下婚戒,离婚原因疑曝光!

狗仔曝陈晓宁可净身出户也要离婚,已摘下婚戒,离婚原因疑曝光!

古希腊掌管月桂的神
2024-06-19 14:10:03
多地成立警税联合作战中心,让民营企业胆战心惊,怎么安心做企业

多地成立警税联合作战中心,让民营企业胆战心惊,怎么安心做企业

雨秋闲话
2024-06-18 22:18:13
第一批小米车主已经开始卖车了:有人不堪月供重负,有人转向华为问界

第一批小米车主已经开始卖车了:有人不堪月供重负,有人转向华为问界

金融界
2024-06-18 22:43:11
欧文&东契奇季后赛共得到1122分,创NBA历史后场双人组纪录

欧文&东契奇季后赛共得到1122分,创NBA历史后场双人组纪录

懂球帝
2024-06-19 12:25:15
前行政长官林郑月娥,退休后因被制裁,沦落到只能在香港租房住?

前行政长官林郑月娥,退休后因被制裁,沦落到只能在香港租房住?

史二了
2024-06-18 14:01:44
民政部发布公告,浙江2个机场名称确定

民政部发布公告,浙江2个机场名称确定

浙江发布
2024-06-19 16:05:55
2024-06-19 16:52:49
科技贤者
科技贤者
给大家分享科技的科研成果
176文章数 98307关注度
往期回顾 全部

科技要闻

英伟达超越苹果、微软登顶全球新股王

头条要闻

退休7年后副部级官员洪礼和被查 上月底还曾公开露面

头条要闻

退休7年后副部级官员洪礼和被查 上月底还曾公开露面

体育要闻

欧洲杯最大的混子,非他莫属

娱乐要闻

黄一鸣“杀疯了” 直播间卖大葱养孩子

财经要闻

深化科创板改革 证监会发布八条措施

汽车要闻

双肾格栅变化大/内饰焕新 新一代宝马X3官图发布

态度原创

艺术
教育
数码
游戏
家居

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

教育要闻

小学生的趣味填空题完全停不下来

数码要闻

七彩虹源 N14 笔记本通过 3C 认证:i9-13900H + RTX 4070

《鸣潮》1.1版本6月28日更新:两位美女你抽谁?

家居要闻

自然开放 实现灵动可变空间

无障碍浏览 进入关怀版