10个最流行的可生成图像嵌入向量的预训练AI模型

news2024/12/23 0:04:22

迁移学习的出现进一步加速了计算机视觉——图像分类用例的快速发展。 在大型图像数据集上训练计算机视觉神经网络模型需要大量的计算资源和时间。

幸运的是,通过使用预训练模型可以缩短时间和资源。 利用预训练模型的特征表示的技术称为迁移学习。 预训练通常使用高端计算资源和海量数据集进行训练。

可以通过多种方式使用预训练模型:

  • 使用预训练的权重,直接对测试数据进行预测
  • 使用预训练的权重进行初始化并使用自定义数据集训练模型
  • 仅使用预训练网络的架构,并在自定义数据集上从头开始训练

本文介绍了前 10 个最先进的预训练模型以获得图像嵌入。 所有这些预训练模型都可以使用 keras.application API 作为 keras 模型加载。

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

1、VGG

VGG-16/19 网络是在 ILSVRC 2014 会议上推出的,因为它是最受欢迎的预训练模型之一。 它是由牛津大学的视觉图形组开发的。

VGG模型有两种变体:16层和19层网络,VGG-19(19层网络)是VGG-16(16层网络)模型的改进。

1.1 VGG的架构

VGG 网络本质上是简单且顺序的,并且使用了很多过滤器。 在每个阶段,使用小型 (3*3) 过滤器来减少参数数量。
在这里插入图片描述

VGG-16 网络具有以下内容:

  • 卷积层 = 13
  • 池化层 = 5
  • 完全连接的密集层 = 3

输入:图像维度 (224, 224, 3)

输出:1000维的图像嵌入

VGG-16/19 的其他详细信息:

  • 论文链接:arxiv
  • GitHub:VGG
  • 发表于:2015 年 4 月
  • ImageNet 数据集上的性能:71%(前 1 准确度),90%(前 5 准确度)
  • 参数数量:~140M
  • 层数:16/19
  • 磁盘大小:~530MB

1.2 使用VGG

对你的输入数据调用 tf.keras.applications.vgg16.preprocess_input 以将输入图像转换为每个颜色通道的零中心 BGR。

使用下面提到的代码实例化 VGG16 模型:

tf.keras.applications.VGG16(
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
)

上述代码是针对VGG-16的实现,keras为VGG-19的实现提供了类似的API,更多细节请参考此文档。

2、Xception

Xception 是一种深度 CNN 架构,涉及深度可分离卷积。 depthwise separable convolution 可以理解为具有最大塔数的 Inception 模型。

2.1 Xception架构

在这里插入图片描述

输入:图像维度 (299, 299, 3)

输出:1000维的图像嵌入

Xception 的其他详细信息:

  • 论文链接:arxiv
  • GitHub:Xception
  • 发表于:2017 年 4 月
  • ImageNet 数据集上的性能:79%(前 1 准确度),94.5%(前 5 准确度)
  • 参数数量:~30M
  • 深度:81
  • 磁盘大小:88MB

2.2 使用Xception

使用下面提到的代码实例化 Xception 模型:

tf.keras.applications.Xception(
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
)

以上代码为Xception的实现,更多细节请参考此文档。

3、ResNet

以前的 CNN 架构并不是为了扩展到许多卷积层而设计的。 在向现有架构添加新层时,它会导致消失的梯度问题和有限的性能。

ResNets 架构提供跳过连接来解决梯度消失问题。

3.1 ResNet架构

在这里插入图片描述

此 ResNet 模型使用 34 层网络架构,其灵感来自于添加了快捷连接的 VGG-19 模型。 然后,这些快捷连接将架构转换为残差网络。

ResNet架构有几个版本:

  • ResNet50
  • ResNet50V2
  • ResNet101
  • ResNet101V2
  • ResNet152
  • ResNet152V2

输入:图像维度 (224, 224, 3)

输出:1000维的图像嵌入

ResNet 模型的其他详细信息:

  • 论文链接:arxiv
  • GitHub:ResNet
  • 发表于:2015 年 12 月
  • ImageNet 数据集上的性能:75–78%(前 1 准确率),92–93%(前 5 准确率)
  • 参数数量:25-60M
  • 深度:107–307
  • 磁盘大小:~100–230MB

3.2 使用ResNet

使用下面提到的代码实例化 ResNet50 模型:

tf.keras.applications.ResNet50(
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    **kwargs
)

上述代码是针对 ResNet50 实现的,keras 提供了与其他 ResNet 架构实现类似的 API,更多详细信息请参阅此文档。

4、Inception

多个深层卷积导致数据过拟合。 为了避免过度拟合,初始模型在同一层上使用平行层或多个不同大小的过滤器,以使模型更宽而不是更深。 Inception V1 模型由 4 个平行层组成:(11)、(33)、(55) 卷积和 (33) 最大池化。

Inception (V1/V2/V3) 是由谷歌团队开发的基于深度学习模型的 CNN 网络。 InceptionV3 是 InceptionV1 和 V2 模型的高级优化版本。

4.1 Inception架构

InceptionV3 模型由 42 层组成。 InceptionV3的架构是逐步逐步构建的:

  • 分解卷积
  • 更小的卷积
  • 不对称卷积
  • 辅助卷积
  • 网格尺寸减小

所有这些概念都整合到下面提到的最终架构中:

在这里插入图片描述

输入:图像维度(299, 299, 3)

输出:1000维的图像嵌入

InceptionV3 模型的其他详细信息:

  • 论文链接:arxiv
  • GitHub:InceptionV3
  • 发表于:2015 年 12 月
  • ImageNet 数据集上的性能:78%(前 1 准确度),94%(前 5 准确度)
  • 参数数量:24M
  • 深度:189
  • 磁盘大小:92MB

4.2 使用Inception

使用下面提到的代码实例化 InceptionV3 模型:

tf.keras.applications.InceptionV3(
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
)

以上代码为InceptionV3实现,更多细节请参考此文档。

5、InceptionResNet

InceptionResNet-v2 是谷歌研究人员开发的 CNN 模型。 该模型的目标是降低InceptionV3的复杂度,探索在Inception模型上使用残差网络的可能性。

5.1 InceptionResNet架构

在这里插入图片描述

输入:图像维度 (299, 299, 3)

输出:1000维的图像嵌入

Inception-ResNet-V2 模型的其他详细信息:

  • 论文链接:arxiv
  • GitHub:Inception-ResNet-V2
  • 发表于:2016 年 8 月
  • ImageNet 数据集上的性能:80%(前 1 准确度),95%(前 5 准确度)
  • 参数数量:56M
  • 深度:189
  • 磁盘大小:215MB

5.2 使用InceptionResNet

使用下面提到的代码实例化 Inception-ResNet-V2 模型:

tf.keras.applications.InceptionResNetV2(
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
    **kwargs
)

以上代码为Inception-ResNet-V2的实现,更多细节请参考此文档。

6、MobileNet

MobileNet 是一种流线型架构,它使用深度可分离卷积构建深度卷积神经网络,并为移动和嵌入式视觉应用程序提供高效模型。

6.1 MobileNet架构

在这里插入图片描述

输入:图像维度 (224, 224, 3)

输出:1000维的图像嵌入

MobileNet 模型的其他详细信息:

  • 论文链接:arxiv
  • GitHub: MobileNet-V3, MobileNet-V2
  • 发表于:2017 年 4 月
  • ImageNet 数据集上的性能:71%(前 1 准确度),90%(前 5 准确度)
  • 参数数量:3.5–4.3M
  • 深度:55–105
  • 磁盘大小:14–16MB

6.2 使用MobileNet

使用下面提到的代码实例化 MobileNet 模型:

tf.keras.applications.MobileNet(
    input_shape=None,
    alpha=1.0,
    depth_multiplier=1,
    dropout=0.001,
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
    **kwargs
)

上述代码是针对MobileNet的实现,keras为其他MobileNet架构(MobileNet-V2、MobileNet-V3)的实现提供了类似的API,更多细节请参考此文档。

7、DenseNet

DenseNet 是一种 CNN 模型,旨在提高高级神经网络中由于输入层和输出层之间的距离较长而导致的梯度消失以及信息在到达目的地之前消失而导致的准确性。

7.1 DenseNet架构

DenseNet 架构有 3 个密集块。 两个相邻块之间的层称为过渡层,并通过卷积和池化改变特征图大小。

在这里插入图片描述

输入:图像维度 (224, 224, 3)

输出:1000维的图像嵌入

DenseNet 模型的其他详细信息:

  • 论文链接:arxiv
  • GitHub:DenseNet-169、DenseNet-201、DenseNet-264
  • 发表于:2018 年 1 月
  • ImageNet 数据集上的性能:75–77%(前 1 准确率),92–94%(前 5 准确率)
  • 参数数量:8-20M
  • 深度:240–400
  • 磁盘大小:33–80MB

7.2 使用DenseNet

使用下面提到的代码实例化 DenseNet121 模型:

tf.keras.applications.DenseNet121(
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
)

上述代码是针对DenseNet的实现,keras为其他DenseNet架构(DenseNet-169、DenseNet-201)的实现提供了类似的API,更多细节请参考此文档。

8、NasNet

谷歌研究人员设计了一个 NasNet 模型,该模型将问题框定为寻找最佳 CNN 架构作为强化学习方法。 这个想法是在给定的层数、过滤器大小、步幅、输出通道等的给定搜索空间中搜索参数的最佳组合。

8.1 NasNet架构

输入:维度图像 (331, 331, 3)

NasNet 模型的其他详细信息:

  • 论文链接:arxiv
  • 发表于:2018 年 4 月
  • ImageNet 数据集上的性能:75–83%(前 1 准确率),92–96%(前 5 准确率)
  • 参数数量:5–90M
  • 深度:389–533
  • 磁盘大小:23–343MB

8.2 使用NasNet

使用下面提到的代码实例化 NesNetLarge 模型:

tf.keras.applications.NASNetLarge(
    input_shape=None,
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
)

上述代码是针对NesNet的实现,keras提供了类似的API来实现其他NasNet架构(NasNetLarge、NasNetMobile),更多细节请参考此文档。

9、EfficientNet

EfficientNet 是来自谷歌研究人员的 CNN 架构,它可以通过一种称为复合缩放的缩放方法获得更好的性能。 这种缩放方法将深度/宽度/分辨率的所有维度统一缩放一个固定的量(复合系数)。

9.1 EfficientNet架构

在这里插入图片描述

EfficientNet 模型的其他详细信息:

  • 论文链接:arxiv
  • GitHub:EfficientNet
  • 发表于:2020 年 9 月
  • ImageNet 数据集上的性能:77–84%(前 1 准确率),93–97%(前 5 准确率)
  • 参数数量:5–67M
  • 深度:132–438
  • 磁盘大小:29–256MB

9.2 使用EfficientNet

使用下面提到的代码实例化 EfficientNet-B0 模型:

tf.keras.applications.EfficientNetB0(
    include_top=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
    **kwargs
)

上述代码是针对EfficientNet-B0的实现,keras为其他EfficientNet架构(EfficientNet-B0到B7,EfficientNet-V2-B0到B3)的实现提供了类似的API,更多细节参考文档1以及文档2。

10、ConvNeXt

ConvNeXt CNN 模型是作为纯卷积模型 (ConvNet) 提出的,其灵感来自 Vision Transformers 的设计,声称其性能优于它们。

10.1 ConvNeXt架构

在这里插入图片描述

ConvNeXt 模型的其他详细信息:

  • 论文链接:arxiv
  • GitHub:ConvNeXt
  • 发表于:2022 年 3 月
  • ImageNet 数据集上的性能:81–87%(准确率前 1)
  • 参数数量:29–350M
  • 磁盘大小:110–1310MB

10.2 使用ConvNeXt

使用下面提到的代码实例化 ConvNeXt-Tiny 模型:

tf.keras.applications.ConvNeXtTiny(
    model_name="convnext_tiny",
    include_top=True,
    include_preprocessing=True,
    weights="imagenet",
    input_tensor=None,
    input_shape=None,
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
)

上述代码是针对ConvNeXt-Tiny的实现,keras提供了其他EfficientNet架构(ConvNeXt-Small、ConvNeXt-Base、ConvNeXt-Large、ConvNeXt-XLarge)实现的类似API,更多细节请参考此文档。

11、结束语

本文讨论了 10 种流行的 CNN 架构,它们可以使用迁移学习生成嵌入。 这些预训练的 CNN 模型已经超越了 ImageNet 数据集,并被证明是最好的。 Keras 库提供 API 来加载所讨论的预训练模型的架构和权重。 从这些模型生成的图像嵌入可用于各种用例。

然而,这是一个不断发展的领域,总有一种新的 CNN 架构值得期待。


原文链接:TOP10图像嵌入预训练模型 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《MySQL(三):基础篇- 函数》

文章目录 3. 函数3.1 字符串函数3.2 数值函数3.3 日期函数3.4 流程函数 3. 函数 函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中 已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应…

Vue.js 中的响应式原理是什么?

Vue.js 中的响应式原理是什么? Vue.js 是一种流行的前端框架,它使用了一种称为“响应式”的技术来实现数据绑定。这意味着当数据发生变化时,Vue.js会自动更新相关的视图,而无需手动操作DOM。在本文中,我们将深入探讨V…

【SCI征稿】Elsevier旗下中科院2区TOP, 仅1周见刊, 6月11日截稿 (文末有好)~

一、【期刊简介】 中科院2区智能计算类SCI (TOP/6.11截稿) 【期刊概况】IF:8.0-9.0, JCR1区, 中科院2区; 【终审周期】走期刊部系统,3-5个月左右录用; 【检索情况】SCI&EI双检;正刊; 【数据库收录年份】2001年…

RHCE练习题目【更新至】

文章目录 第一题、安装和配置ansible第二题、创建和运行ansible临时命令第三题、使用剧本安装软件包第四题、使用RHEL系统脚色第一问、配置时间同步第二问、配置selinux 第五题、使用Ansible Galaxy安装角色第六题、创建和使用角色第七题、从Ansible Galaxy使用角色第八题、创建…

一文搞定国民N32G435高负载串口通信

副标题:USRAT无硬件双缓冲条件下的软件双缓冲 一、前言 在单片机中,USART的通信一般都是最常用也最先去接触的串口外设,在一般的小数据量应用中一般不需要考虑USART串口(以下简称为串口)的高负载能力,比如…

第六十五天学习记录:高等数学:函数与极限(宋浩板书)

C语言学习后,曾为先学C还是数据结构纠结了半天。在看数据结构前言的时候,发现学习数据结构之前还需要一定的数学基础。虽然涉及到的数学基础不多,但想到以前大学高数,现代不是60分万岁就是不到80分,好像就概率论稍微了…

【Python】Python系列教程-- Python3 循环语句(十七)

文章目录 前言while 循环无限循环while 循环使用 else 语句简单语句组for 语句for...elserange() 函数break 和 continue 语句及循环中的 else 子句pass 语句 前言 往期回顾: Python系列教程–Python3介绍(一)Python系列教程–Python3 环境…

Treap C++代码实现

一、全部代码 #include <iostream> #include <cstdlib> #include <time.h>using namespace std;//Treap结构 struct TreapNode {TreapNode *pLeft, *pRight;int value, fix; };//左旋 void TreapLeftRotate(TreapNode* &pCur){//首先&#xff0c;找到当…

平衡树原理讲解

平衡树——Treap 文章目录 平衡树——TreapBST定义性质操作插入insert(o, v)删除del(o, v)找前驱 / 后继get_prev(o)、get_next(o)查找最大 / 最小值get_min(o)、get_max(o)求元素排名get_rank(o)查找排名为 k k k的元素get_value_by_rank 平衡树左旋、右旋zag(o)、zig(o)左旋右…

Vue路由(vue-router)详细讲解指南

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成&#xff0c;让构建单页面应用变得易如反掌。路由实际上就是可以理解为指向&#xff0c;就是我在页面上点击一个按钮需要跳转到对应的页面&#xff0c;这就是路由跳转&#xff1b; 首先我们来学习三个单词&…

运维小白必学篇之基础篇第八集:LVM实验

LVM实验 实验一&#xff1a; 使用/dev/sdb磁盘完成以下操作&#xff1a; 1、创建5个物理卷&#xff0c;组成大小为10G的卷组vgtest 2、创建大小为3G的逻辑卷lv1&#xff0c;格式化xfs文件系统&#xff0c;实现开机自动挂载 3、为lv1逻辑卷扩容至5G&#xff0c;然后查看扩容之…

男子路遇“纸片鸟”,AI帮忙免惹祸

据报道&#xff0c;近日&#xff0c;河南洛阳一网友在路边偶遇一只“纸片鸟”&#xff0c;小鸟远看像一张纸片&#xff0c;样子十分奇特&#xff0c;而且还死死地盯着自己&#xff0c;像是求救&#xff0c;后来他用手机一查发现是二级保护动物“黄斑苇鳽”&#xff0c;便报警处…

排水管网监测预警系统:为城市排水建设提质增效

最近&#xff0c;城市生命线安全工程占据着行业的头条榜单&#xff0c;与民众生活密不可分的城市基础设施&#xff0c;包括城市的燃气、桥梁、供水、排水、供热、综合管廊等被称为城市生命线。城市生命线安全工程是城市更新和新型城市基础设施建设的重要内容&#xff0c;其主要…

数说故事×中广协丨广告代言人内容商业沙龙走进大湾区

以“娱时俱进&#xff0c;内容赋能”为主题的广告代言人内容商业沙龙&#xff08;大湾区站&#xff09;&#xff0c;近日在广州市白云区美湾广场成功举行。 沙龙由中国广告协会作为指导单位&#xff0c;广东省广告协会与中国广告协会广告代言人工作委员会联合主办&#xff0c;广…

机器视觉陶瓷板外观缺陷检测系统应用

随着科技的不断发展&#xff0c;机器视觉技术在工业领域的应用越来越广泛。其中&#xff0c;机器视觉陶瓷板外观缺陷检测系统是一项十分重要的技术。该系统利用计算机视觉技术对陶瓷板表面的缺陷进行自动化检测&#xff0c;大大提高了生产效率和产品质量。 机器视觉陶瓷板外观…

智能应用搭建平台——LCHub低代码表单 vs 流程表单 vs 仪表盘

1. LCHub低代码如何选择 「流程表单」:填报数据,并带有流程审批功能,适合报销、请假申请或其他工作流; 「表单」:填报数据,并带有数据协作功能,如修改、删除、导入、导出,并可以给不同的人不同的管理权限; 「仪表盘」:数据分析处理、结果展示功能,如数据汇总、趋…

如何实现Web3去中心化云计算的大规模采用?

随着区块链技术的迅猛发展&#xff0c;Web3去中心化云计算正在逐渐崭露头角。它以分布式、安全和透明的特点&#xff0c;为用户和企业提供了许多独特的优势。 然而&#xff0c;要实现Web3去中心化云计算的大规模采用&#xff0c;仍然面临着一些挑战。本文将探讨这些挑战&#x…

[EuroSys2023 Best Poster] 面向动态图的极低时延GNN推理采样服务

作者&#xff1a;沈雯婷 GraphLearn是阿里云机器学习平台PAI 团队和达摩院智能计算实验室图计算团队共建的工业界大规模图神经网络训练框架, 也是一站式图计算平台GraphScope的图学习引擎。GraphLearn最新开源了面向动态图的GNN在线推理实时采样服务(DGS)。DGS具备处理实时高吞…

端口占用解决报错:Web server failed to start. Port 8080 was already in use.

报错信息如下: Description: Web server failed to start.Port 8080 was already in use. Action: Identify and stop the process thats listening on port 8080 or configure this application to listen on another port. 当idea项目启动时报这个错&#xff0c;意思是端…

2019年一月联考逻辑真题

2019年一月联考逻辑真题 三、逻辑推理&#xff1a;第 26&#xff5e;55 小题&#xff0c;每小题 2 分&#xff0c;共 60 分。下列每题给出的 A、B、C、D、 E 五个选项中&#xff0c;只有一项是符合试题要求的。请在答题卡上将所选项的字母涂黑。 真题&#xff08;2019-26&#…