总结近几年Pytorch基于Imgagenet数据集图像分类模型

AlexNet (2012 )

2012 年,AlexNet 由 Alex Krizhevsky 为 ImageNet 大规模视觉识别挑战赛 ( ILSVRV ) 提出的,ILSVRV 评估用于对象检测和图像分类的算法。

AlexNet 总共由八层组成

其中前5层是卷积层,后3层是全连接层。

前两个卷积层连接到重叠的最大池化层以提取最大数量的特征。

第三、四、五卷积层直接与全连接层相连。

卷积层和全连接层的所有输出都连接到 ReLu 非线性激活函数。

最后的输出层连接到一个 softmax 激活层,它产生 1000 个类标签的分布。

VGG (2014)

VGG 是一种流行的神经网络架构

由2014年,牛津大学的 Karen Simonyan 和 Andrew Zisserman 提出。

与 AlexNet 相比,VGG 的主要改进包括使用大内核大小的过滤器

(第一和第二卷积层中的大小分别为 11 和 5)和多个(3×3)内核大小的过滤器。

GoogleNet (2014)

2014年,GoogleNet 诞生,该架构有 22 层深

包括 27 个池化层。总共有 9 个初始模块线性堆叠。Inception 模块的末端连接到全局平均池化层。

下面是完整 GoogleNet 架构的缩小图像。

ResNet (2015)

由于深度神经网络训练既费时又容易过拟合,微软引入了一个残差学习框架来改进比以前使用的更深的网络的训练。

ResNet在PyTorch的官方代码中共有5种不同深度的结构

深度分别为18、34、50、101、152(各种网络的深度指的是“需要通过训练更新参数”的层数,如卷积层,全连接层等)。

Inception v3 (2015)

与 VGGNet 相比,

Inception Networks 已被证明在计算效率更高

Inception v3 网络的架构是逐步构建的,结构图可点击查看大图

SqueezeNet (2016)

SqueezeNet 是一个较小的网络

它的参数比 AlexNet 少近 50 倍,但执行速度快 3 倍。

如上图中最左边所示,SqueezeNet 以一个标准的卷积层开始,然后是 8 个 Fire 模块,最后再以一个卷积层结束。

步长为 2 的池化分别跟在第一个卷积层、 第 4 个 Fire 模块、第 8 个 Fire 模块和最后一个卷积层后面。

中间的网络结构在特征图通道数相同的 Fire 模块之间引入了残差网络中的跳跃连接,

而最右边的网络结构在中间结构的基础上,针对特征图通道数不一样的情况,通过一个 1×1 的卷积来调整通道数一致后再相加。

DenseNet (2016)

DenseNet 拥有与传统深度 CNN 相比的一大优势:

通过多层的信息在到达网络末端时不会被冲刷或消失。这是通过简单的连接模式实现的。

要理解这一点,必须知道普通 CNN 中的层是如何连接的。

这是一个简单的 CNN,其中各层按顺序连接。然而,在DenseNet 中,每一层从所有前面的层获得额外的输入,并将其自己的特征映射传递给所有后续层。

下面是描绘DenseNet 的图像。

Xception (2016)

Xception是Google公司继Inception后提出的

对 Inception-v3 的另一种改进

Xception 的结构基于 ResNet,但是将其中的卷积层换成了Separable Convolution(极致的 Inception模块)。

如下图所示。整个网络被分为了三个部分:Entry,Middle和Exit。

ShuffleNet v2 (2018)

2018年,开始了轻度网络的研究,MnasNet ,MobileNet,ShuffleNet,,Xception采用了分组卷积,

深度可分离卷积等操作,这些操作

在一定程度上大大减少了FLOP

整体 ShuffleNet v2 架构列表如下:

MnasNet (2018)

Google 团队最新提出 MnasNet

使用强化学习的思路,提出一种资源约束的终端 CNN 模型的自动神经结构搜索方法。

ResNeXt(2019)

ResNeXt是ResNet 的变体

ResNet有许多版本,对应的ResNeXt也有许多不同版本。

对比下,ResNet50和ResNeXt-50的网络结构图如下:

MobileNetv3 (2019)

在ImageNet分类任务上,相对于MobileNetV2,

MobileNetV3-small精度提高了大约3.2%,时间减少了15%

MobileNetV3-large精度提高了大约34.6%,时间减少了5%。

MobileNetV3的large和small结构如下图所示。

EfficientNet 2019 and EfficientNet v2 2021

谷歌研究人员在一篇 ICML 2019 论文《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》中,

提出了

一种新型模型缩放方法

该方法使用一种简单但高效的复合系数(compound coefficient)以更加结构化的方式扩展 CNN,这成为后ResNet时代的顶流EfficientNet,

很多模型网络及其复杂,学会怎么用轮子就好了。

以上就是总结近几年Pytorch基于Imgagenet数据集图像分类模型的详细内容,更多关于Pytorch基于Imgagenet数据集图像分类模型的资料请关注我们其它相关文章!

(0)

相关推荐

  • pytorch模型的保存和加载、checkpoint操作

    其实之前笔者写代码的时候用到模型的保存和加载,需要用的时候就去度娘搜一下大致代码,现在有时间就来整理下整个pytorch模型的保存和加载,开始学习把~ pytorch的模型和参数是分开的,可以分别保存或加载模型和参数.所以pytorch的保存和加载对应存在两种方式: 1. 直接保存加载模型 (1)保存和加载整个模型 # 保存模型 torch.save(model, 'model.pth\pkl\pt') #一般形式torch.save(net, PATH) # 加载模型 model = torc

  • Python机器学习之基于Pytorch实现猫狗分类

    一.环境配置 安装Anaconda 具体安装过程,请点击本文 配置Pytorch pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torchvision 二.数据集的准备 1.数据集的下载 kaggle网站的数据集下载地址: https://www.kaggle.com/lizhensheng/-2000 2.

  • pytorch 搭建神经网路的实现

    目录 1 数据 (1)导入数据 (2)数据集可视化 (3)为自己制作的数据集创建类 (4)数据集批处理 (5)数据预处理 2 神经网络 (1)定义神经网络类 (3)模型参数 3 最优化模型参数 (1)超参数 (2)损失函数 (3)优化方法 4 模型的训练与测试 (1)训练循环与测试循环 (2)禁用梯度跟踪 5 模型的保存.导入与GPU加速 (1)模型的保存与导入 (2)GPU加速 总结 1 数据 (1)导入数据 我们以Fashion-MNIST数据集为例,介绍一下关于pytorch的数据集导入.

  • 手把手教你实现PyTorch的MNIST数据集

    概述 MNIST 包含 0~9 的手写数字, 共有 60000 个训练集和 10000 个测试集. 数据的格式为单通道 28*28 的灰度图. 获取数据 def get_data(): """获取数据""" # 获取测试集 train = torchvision.datasets.MNIST(root="./data", train=True, download=True, transform=torchvision.tran

  • 总结近几年Pytorch基于Imgagenet数据集图像分类模型

    AlexNet (2012 ) 2012 年,AlexNet 由 Alex Krizhevsky 为 ImageNet 大规模视觉识别挑战赛 ( ILSVRV ) 提出的,ILSVRV 评估用于对象检测和图像分类的算法. AlexNet 总共由八层组成 其中前5层是卷积层,后3层是全连接层. 前两个卷积层连接到重叠的最大池化层以提取最大数量的特征. 第三.四.五卷积层直接与全连接层相连. 卷积层和全连接层的所有输出都连接到 ReLu 非线性激活函数. 最后的输出层连接到一个 softmax 激活

  • PyTorch实现MNIST数据集手写数字识别详情

    目录 一.PyTorch是什么? 二.程序示例 1.引入必要库 2.下载数据集 3.加载数据集 4.搭建CNN模型并实例化 5.交叉熵损失函数损失函数及SGD算法优化器 6.训练函数 7.测试函数 8.运行 三.总结 前言: 本篇文章基于卷积神经网络CNN,使用PyTorch实现MNIST数据集手写数字识别. 一.PyTorch是什么? PyTorch 是一个 Torch7 团队开源的 Python 优先的深度学习框架,提供两个高级功能: 强大的 GPU 加速 Tensor 计算(类似 nump

  • 基于pytorch的保存和加载模型参数的方法

    当我们花费大量的精力训练完网络,下次预测数据时不想再(有时也不必再)训练一次时,这时候torch.save(),torch.load()就要登场了. 保存和加载模型参数有两种方式: 方式一: torch.save(net.state_dict(),path): 功能:保存训练完的网络的各层参数(即weights和bias) 其中:net.state_dict()获取各层参数,path是文件存放路径(通常保存文件格式为.pt或.pth) net2.load_state_dict(torch.loa

  • 用Pytorch训练CNN(数据集MNIST,使用GPU的方法)

    听说pytorch使用比TensorFlow简单,加之pytorch现已支持windows,所以今天装了pytorch玩玩,第一件事还是写了个简单的CNN在MNIST上实验,初步体验的确比TensorFlow方便. 参考代码(在莫烦python的教程代码基础上修改)如下: import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import tor

  • pytorch 把MNIST数据集转换成图片和txt的方法

    本文介绍了pytorch 把MNIST数据集转换成图片和txt的方法,分享给大家,具体如下: 1.下载Mnist 数据集 import os # third-party library import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import torchvision import matplotlib.pyplot as plt # t

  • pytorch 批次遍历数据集打印数据的例子

    我就废话不多说了,直接上代码吧! from os import listdir import os from time import time import torch.utils.data as data import torchvision.transforms as transforms from torch.utils.data import DataLoader def printProgressBar(iteration, total, prefix='', suffix='', d

  • Pytorch 神经网络—自定义数据集上实现教程

    第一步.导入需要的包 import os import scipy.io as sio import numpy as np import torch import torch.nn as nn import torch.backends.cudnn as cudnn import torch.optim as optim from torch.utils.data import Dataset, DataLoader from torchvision import transforms, ut

  • pytorch下大型数据集(大型图片)的导入方式

    使用torch.utils.data.Dataset类 处理图片数据时, 1. 我们需要定义三个基本的函数,以下是基本流程 class our_datasets(Data.Dataset): def __init__(self,root,is_resize=False,is_transfrom=False): #这里只是个参考.按自己需求写. self.root=root self.is_resize=is_resize self.is_transfrom=is_transfrom self.i

  • 关于Pytorch的MNIST数据集的预处理详解

    关于Pytorch的MNIST数据集的预处理详解 MNIST的准确率达到99.7% 用于MNIST的卷积神经网络(CNN)的实现,具有各种技术,例如数据增强,丢失,伪随机化等. 操作系统:ubuntu18.04 显卡:GTX1080ti python版本:2.7(3.7) 网络架构 具有4层的CNN具有以下架构. 输入层:784个节点(MNIST图像大小) 第一卷积层:5x5x32 第一个最大池层 第二卷积层:5x5x64 第二个最大池层 第三个完全连接层:1024个节点 输出层:10个节点(M

  • Pytorch使用MNIST数据集实现基础GAN和DCGAN详解

    原始生成对抗网络Generative Adversarial Networks GAN包含生成器Generator和判别器Discriminator,数据有真实数据groundtruth,还有需要网络生成的"fake"数据,目的是网络生成的fake数据可以"骗过"判别器,让判别器认不出来,就是让判别器分不清进入的数据是真实数据还是fake数据.总的来说是:判别器区分真实数据和fake数据的能力越强越好:生成器生成的数据骗过判别器的能力越强越好,这个是矛盾的,所以只能

随机推荐