”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > ResNet、EfficientNet、VGG、NN

ResNet、EfficientNet、VGG、NN

发布于2024-08-31
浏览:768

作为一名学生,我亲眼目睹了我们大学效率低下的失物招领系统所带来的挫败感。目前的流程依赖于每个找到的物品的单独电子邮件,通常会导致丢失物品与其所有者之间的延误和错过联系。

出于为自己和同学改善这种体验的愿望,我开始了一个项目,探索深度学习在彻底改变我们的失物招领系统方面的潜力。 在这篇博文中,我将分享我评估预训练模型(ResNet、EfficientNet、VGG 和 NasNet)的旅程,以自动识别和分类丢失的物品。

通过比较分析,我的目标是找出最适合集成到我们系统中的模型,最终为校园里的每个人创造更快、更准确、用户友好的失物招领体验。

残差网络

Inception-ResNet V2 是 Keras 中提供的强大的卷积神经网络架构,将 Inception 架构的优势与 ResNet 的残差连接相结合。这种混合模型旨在在保持计算效率的同时实现图像分类任务的高精度。

训练数据集:ImageNet
图像格式:299 x 299

预处理功能

def readyForResNet(fileName):
    pic = load_img(fileName, target_size=(299, 299))
    pic_array = img_to_array(pic)
    expanded = np.expand_dims(pic_array, axis=0)
    return preprocess_input_resnet(expanded)

预测

data1 = readyForResNet(test_file)
prediction = inception_model_resnet.predict(data1)
res1 = decode_predictions_resnet(prediction, top=2)

VGG(视觉几何组)

VGG(视觉几何组)是一系列深度卷积神经网络架构,以其在图像分类任务中的简单性和有效性而闻名。这些模型,特别是 VGG16 和 VGG19,由于在 2014 年 ImageNet 大规模视觉识别挑战赛 (ILSVRC) 中的出色表现而受到欢迎。

训练数据集:ImageNet
图像格式:224 x 224

预处理功能

def readyForVGG(fileName):
    pic = load_img(fileName, target_size=(224, 224))
    pic_array = img_to_array(pic)
    expanded = np.expand_dims(pic_array, axis=0)
    return preprocess_input_vgg19(expanded)

预测

data2 = readyForVGG(test_file)
prediction = inception_model_vgg19.predict(data2)
res2 = decode_predictions_vgg19(prediction, top=2)

高效网络

EfficientNet 是一系列卷积神经网络架构,可在图像分类任务上实现最先进的准确性,同时比以前的模型更小、速度更快。这种效率是通过平衡网络深度、宽度和分辨率的新型复合缩放方法来实现的。

训练数据集:ImageNet
图像格式:480 x 480

预处理功能

def readyForEF(fileName):
    pic = load_img(fileName, target_size=(480, 480))
    pic_array = img_to_array(pic)
    expanded = np.expand_dims(pic_array, axis=0)
    return preprocess_input_EF(expanded)

预测

data3 = readyForEF(test_file)
prediction = inception_model_EF.predict(data3)
res3 = decode_predictions_EF(prediction, top=2)

纳斯网络

NasNet(神经架构搜索网络)代表了深度学习中的一种突破性方法,其中神经网络本身的架构是通过自动搜索过程发现的。此搜索过程旨在找到层和连接的最佳组合,以在给定任务上实现高性能。

训练数据集:ImageNet
图像格式:224 x 224

预处理功能

def readyForNN(fileName):
    pic = load_img(fileName, target_size=(224, 224))
    pic_array = img_to_array(pic)
    expanded = np.expand_dims(pic_array, axis=0)
    return preprocess_input_NN(expanded)

预测

data4 = readyForNN(test_file)
prediction = inception_model_NN.predict(data4)
res4 = decode_predictions_NN(prediction, top=2)

摊牌

准确性

ResNet Vs EfficientNet vs VGG Vs NN

该表总结了上述模型声称的准确性分数。 EfficientNet B7 以最高的准确率领先,紧随其后的是 NasNet-Large 和 Inception-ResNet V2。 VGG 模型的精度较低。对于我的应用程序,我想选择一个在处理时间和准确性之间取得平衡的模型。

时间

ResNet Vs EfficientNet vs VGG Vs NN

正如我们所见,EfficientNetB0 为我们提供了最快的结果,但考虑到准确性时,InceptionResNetV2 是一个更好的包

概括

对于我的智能失物招领系统,我决定使用 InceptionResNetV2。虽然 EfficientNet B7 以其一流的准确性看起来很诱人,但我担心它的计算需求。在大学环境中,资源可能有限,而实时性能往往是可取的,我认为在准确性和效率之间取得平衡很重要。 InceptionResNetV2 似乎是完美的选择 - 它提供了强大的性能,而又不会过度计算密集。

另外,它在 ImageNet 上进行预训练的事实让我相信它可以处理人们可能丢失的各种物体。我们不要忘记在 Keras 中使用是多么容易!这绝对让我的决定更容易。

总体而言,我相信 InceptionResNetV2 为我的项目提供了准确性、效率和实用性的正确组合。我很高兴看到它在帮助丢失的物品与失主重新团聚方面的表现!

版本声明 本文转载于:https://dev.to/saaransh_gupta_1903/resnet-vs-efficientnet-vs-vgg-vs-nn-2hf5?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • Spring Boot:Java 应用程序开发的革命
    Spring Boot:Java 应用程序开发的革命
    如果您使用 Java 开发,您可能已经听说过 Spring Boot。但如果您还不知道,请准备好发现最强大、最实用的工具之一,它彻底改变了 Java 应用程序的创建方式! 什么是 Spring Boot? Spring Boot 是一个框架,它使 Java 应用程序的开发变得更加容易(而且更加容易!...
    编程 发布于2024-11-08
  • 如何在没有子查询的情况下在 MySQL 中更新行并获取更新的 ID?
    如何在没有子查询的情况下在 MySQL 中更新行并获取更新的 ID?
    在 MySQL 中组合 SELECT 和 UPDATE 查询将 SELECT 和 UPDATE 查询组合成单个操作对于优化数据库性能非常有用。在这种情况下,用户希望组合以下查询:SELECT * FROM table WHERE group_id = 1013 and time > 100;U...
    编程 发布于2024-11-08
  • 将 SQLite 迁移到 MySQL。
    将 SQLite 迁移到 MySQL。
    我介绍一下自己,我是 Alfredo Riveros,我已经学习编程多年了,我目前正在 Río Tercero 高等商业学院学习软件开发高级技术员,下面我将描述我面临的挑战遭遇。 正如标题所说,我的目标是将 SQLite 数据库迁移到 MySQL,这是由我正在接受的数据库主题中的作业引起的。 我选择...
    编程 发布于2024-11-08
  • 在 Mageia 9 上安装 ASDF
    在 Mageia 9 上安装 ASDF
    今天我们要在 Mageia 9 上安装 ASDF。接下来的步骤是将插件安装到 PHP 和 Node.js。 要在版本 0.14.1 上安装 ASDF,我使用了 Git ZSH 版本: git克隆 https://github.com/asdf-vm/asdf.git ~/.asdf --branch...
    编程 发布于2024-11-08
  • 优化性能:为数据透视表选择最佳数据源
    优化性能:为数据透视表选择最佳数据源
    TL;DR: Syncfusion Pivot Table connects to multiple data sources, making it a versatile tool for data analysis. Selecting the right data source is cruc...
    编程 发布于2024-11-08
  • 使用 Secrets Loader 轻松管理 Laravel 和 JS 项目
    使用 Secrets Loader 轻松管理 Laravel 和 JS 项目
    跨各种环境管理 API 密钥、令牌和凭证等敏感数据可能非常棘手,尤其是在开发和部署应用程序时。确保秘密在需要时安全地存储和获取,而不是将它们硬编码到版本控制中,对于维护安全性至关重要。 这就是为什么我创建了 Secrets Loader,这是一个 Bash 脚本,可以动态地将 AWS SSM 和 C...
    编程 发布于2024-11-08
  • 如何在 Android 中正确实现 CheckBox 的侦听器?
    如何在 Android 中正确实现 CheckBox 的侦听器?
    Android 中的 CheckBox 侦听器在 Android 中实现 CheckBox 侦听器时,必须解决使用标准时面临的常见问题OnCheckedChangeListener 类。标准实现的目标是 RadioGroup 而不是 CheckBox。要解决此问题,请改用CompoundButton...
    编程 发布于2024-11-08
  • Firestore 如何优化社交网络时间线以实现可扩展性?
    Firestore 如何优化社交网络时间线以实现可扩展性?
    使用 Firestore 优化社交网络时间线在设计具有提要和关注功能的社交网络时,数据库可扩展性对于处理潜在问题至关重要大型数据集。 Firebase 的实时数据库带来了可扩展性挑战,特别是在存储用户时间线的方法方面。要解决这些问题,请考虑过渡到 Firestore。优化的数据库结构Firestor...
    编程 发布于2024-11-08
  • 如何解决将对象数组作为函数参数传递时的错误?
    如何解决将对象数组作为函数参数传递时的错误?
    类型提示:对象数组将对象数组作为参数传递给函数时,如果未指定参数类型。例如,考虑以下代码:class Foo {} function getFoo(Foo $f) {}尝试将 Foo 对象数组传递给 getFoo 将导致致命错误:Argument 1 passed to getFoo() must ...
    编程 发布于2024-11-08
  • 为什么 iOS 设备上缺少 CSS 滚动条?
    为什么 iOS 设备上缺少 CSS 滚动条?
    iOS上无法显示带有CSS Overflow的滚动条为iPad开发网站时,使用CSS属性overflow: auto来启用div 内的滚动条可能无效。尽管两指滚动手势功能正常,但滚动条仍然隐藏。尝试同时使用溢出:自动和溢出:滚动不会产生任何结果。iOS行为不幸的是,溢出:自动和滚动都不会在iOS设备...
    编程 发布于2024-11-08
  • Java中如何从线程操作返回值?
    Java中如何从线程操作返回值?
    线程操作返回值在多线程编程中,线程之间的交互往往需要交换数据。一种常见的情况是尝试检索在单独线程中执行的操作的结果。请考虑下面的示例代码:public void test() { Thread uiThread = new HandlerThread("UIHandler"...
    编程 发布于2024-11-08
  • Python 简介:)
    Python 简介:)
    历史 Python 由 Guido van Rossum 创建,首次发布于 1991 年。它旨在优先考虑代码的可读性和简单性,从而提高开发人员的工作效率。 “Python” 的灵感来自 BBC 电视节目 “Monty Python's Flying Circus”,van ...
    编程 发布于2024-11-08
  • 学习 Go 结构最终如何让我爱上编码
    学习 Go 结构最终如何让我爱上编码
    “我仍然记得早期与代码搏斗的日子。 基本的东西?我正要到那里。但后来出现了结构体,一切都变得模糊起来。我不断地破坏东西,我的代码一团糟。我做错了什么? 直到我坐下来,学习了 Go 结构体的基础知识,并开始有效地使用它们,事情才终于有了进展。那是转折点。突然间,代码变得更有组织、更高效、更干净。它改变...
    编程 发布于2024-11-08
  • MERN 堆栈仍然有效吗?
    MERN 堆栈仍然有效吗?
    Remember when the MERN stack was the Beyoncé of web development stacks? It was everywhere, and if you weren’t using it, you were probably missing out ...
    编程 发布于2024-11-08
  • 什么时候需要在 Tkinter 中调用 `mainloop()`?
    什么时候需要在 Tkinter 中调用 `mainloop()`?
    在 Tkinter 应用程序中调用 mainloop在 Tkinter 中,mainloop 是实现窗口渲染和事件处理的基本功能。与流行的看法相反,并不总是需要在交互式 shell 环境中显式调用 mainloop。然而,这种便利在 shell 之外并不适用。mainloop 的作用mainloop...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3