千家信息网

如何使用Mobilenet和Keras进行迁移学习

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章将为大家详细讲解有关如何使用Mobilenet和Keras进行迁移学习,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。我将向您展示使用Mobil
千家信息网最后更新 2024年09月21日如何使用Mobilenet和Keras进行迁移学习

这篇文章将为大家详细讲解有关如何使用Mobilenet和Keras进行迁移学习,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

我将向您展示使用Mobilenet对狗的图像进行分类的示例。然后,我将向您展示一个例子,它会把蓝山雀的图像错误分类。然后,我将重新训练Mobilenet并使用迁移学习,以便它可以正确地对相同的输入图像进行分类。在这个过程中,仅使用了两个分类器,但是这可以扩展到您想要的数量,仅限于您可用的硬件数量和时间。

Mobilenet的源文件位于:https://arxiv.org/pdf/1704.04861.pdf

MobileNets:用于移动视觉应用的高效卷积神经网络。

我们使用Mobilenet,是因为它的架构很轻巧。它使用深度可分离的卷积,这基本上意味着它在每个颜色通道上都执行单个卷积,而不是将所有三个卷积相合并展平它。这具有过滤输入通道的效果。或者正如本文作者清楚地解释的那样:"对于MobileNets,深度卷积对每个输入通道应用单个滤波器。然后,逐点卷积应用1×1卷积来组合输出深度卷积。标准卷积既可以在一个步骤中过滤并将输入组合成一组新的输出。深度可分离卷积将其分成两层,一个用于过滤的单独层一个用于组合的单独层。这种因式分解具有显著减少计算和模型大小的效果。"

逐点和深度卷积之间的差异

所以Mobilenet的整体架构如下,有30层

  1. 步长为2的卷积层

  2. depthwise layer

  3. pointwise layer,使通道数加倍

  4. 步长为2的depthwise layer

  5. pointwise layer,使通道数加倍

等等

Mobilenet完整架构

它的维护成本非常低,在高速下表现也非常好。还有许多类型的预训练模型,其存储器中的网络大小和磁盘上使用的参数数量成比例。网络的速度和功耗与MACs (Multiply-Accumulates)的数量成正比,后者是融合乘法和加法运算数量的度量。

现在让我们来看看代码!

我的全部代码:https://github.com/ferhat00/Deep-Learning/tree/master/Transfer%20Learning%20CNN

让我们加载必要的包和库。

我们从Keras输入预先训练的模型。

让我们尝试下对不同品种的狗的图像进行一些测试。

输出:

输出:

输出:

到现在为止还挺好。它很好地分类了每一种狗,那么接下来让我们试一种鸟类蓝色的山雀来看看。

蓝雀

输出:

你可以看到它无法识别蓝山雀。它错误地将图像归类为小鸡。这是一种原产于北美的本土鸟类,并且有微妙的不同:

山雀

现在让我们操纵Mobilenet架构,重新训练前几个层并使用迁移学习。要做到这一点,我们需要用一些图像训练它。在这里,我将用蓝山雀和乌鸦的图像进行训练。但是,不是手动下载它们的图像,而是使用谷歌图像搜索并拉动图像。要做到这一点,我们可以导入一个很好的包。

查看https://github.com/hardikvasa/google-images-download

让我们现在重新使用MobileNet,因为它非常轻巧(17Mb),让我们添加和训练前几个层。注意我只会训练两个分类器,蓝山雀和乌鸦。

让我们检查一下模型架构

我们将使用预先训练的权重,因为已经在Imagenet数据集上训练了模型。我们确保所有权重都是不可训练的,只训练最后几层密集层。

现在让我们将训练数据加载到ImageDataGenerator中。指定路径,它会自动发送批量训练数据,简化代码。

编译模型。现在让我们训练吧。在GTX1070 GPU上花费不到两分钟。

该模型现已接受训练。 现在让我们测试一些独立的输入图像来检查预测。

输出:

正如你所看到的,它正确地预测了乌鸦的图像,因为蓝山雀的图像被注释掉了。

乌鸦

这可以进一步扩展到更多的图像,更多数量的分类器可以更好地推广,但它是实现CNN迁移学习的最轻量级的方法和最快捷的方式。这当然取决于您想要实现模型的速度、准确程度和硬件,以及您有多少时间可用。

关于如何使用Mobilenet和Keras进行迁移学习就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

训练 图像 卷积 模型 分类 输出 数量 输入 学习 架构 深度 通道 蓝山 乌鸦 更多 代码 数据 网络 应用 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 ci 数据库连接 重新激活系统后连不上数据库 qq后台实时连接数据库吗 国内网络安全公司市场份额 初中毕业软件开发学校 2020年网络安全技术应用 数据库的用户名和密码导出到d盘 饥荒专用服务器如何给队友开权限 aha数据库免费吗 精益创业法管理软件开发项目 3k我的使命服务器 腾讯云服务器挂问道 网络安全法安全责任分配 远程桌面数据库不支持 熙派互联网科技有限公司 2018网络安全周青少年日 网络安全技术接入交换机部署 培训机构网络安全是什么 南通应用软件开发培训 软件开发经理的工作职责 数据库默认值什么 群晖服务器管理员权限 巨杉数据库 产品文档 广电网络技术支持岗 联想服务器突然没有声音怎么回事 博兴物流竞价软件开发咨询 网络安全专业毕业后工资多少 河北龙悦网络技术公司 嘉定区服务器回收推荐厂家 信息网络安全培训资料
0