深度学习网络精确率、大小的比较

论文An Analysis of Deep Neural Network Models for Practical Applications 比较了2016年前的一些神经网络的大小,精度等参数。如下图所示:

这里写图片描述

2016年以来有出现了一些新的神经网络结构,特地查阅了一些论文,总结了一下(发现有很多数据没法不全面或者不同版本的数据稍有差异,其中必定有很多纰漏之处,望多多指正,我会修改并补充的),如下: 
这里写图片描述
其中包含~的数据是从An Analysis of Deep Neural Network Models for Practical Applications 文中图片得到的大概值。

参考文献 
1. An Analysis of Deep Neural Network Models for Practical Applications 
2. ImageNet Classification with Deep Convolutional Neural Networks 
2. Very Deep Convolutional Networks for Large-Scale Image Recognition 
3. Network In Network 
4. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification 
5. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 
6. Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 
7. Deep Residual Learning for Image Recognition 
8. Identity Mappings in Deep Residual Networks 
8. Highway Networks 
9. FractalNet: Ultra-Deep Neural Networks without Residuals 
10. Deep Networks with Stochastic Depth 
11. Aggregated Residual Transformations for Deep Neural Networks 
12. Wide Residual Networks 
13. Densely Connected Convolutional Networks(CVPR2017 best paper) 
14. Deep Pyramidal Residual Networks 
15. Dual Path Networks 
16. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size 
17. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 
18. ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

转载自 https://blog.csdn.net/shizhuoduao/article/details/76166552
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ResNet深度学习网络可以通过在卷积神经网络(CNN)中使用残差块,每一层的输入会添加到输出上来构建。残差块的主要目的是解决深层网络训练中的梯度消失问题,它可以减少训练数据集大小,提高准确和模型效。 ### 回答2: 搭建ResNet深度学习网络可以通过以下步骤实现。 1.导入必要的库和模块:首先,需要导入深度学习框架的库,例如TensorFlow或PyTorch,并且还要导入其他必要的库,例如numpy用于数值计算和matplotlib用于可视化。 2.定义ResNet网络的基本块:ResNet网络的基本单位是残差模块(Residual Block)。一个残差模块由两个卷积层和一个跳跃连接组成。这个跳跃连接将输入直接添加到卷积层的输出,以便于梯度的流动,避免梯度消失的问题。根据网络深度的不同,可以定义多个残差模块。 3.定义ResNet网络结构:根据需要的深度,将多个残差模块按顺序连接起来,组成整个ResNet网络结构。在实践中,通常使用层数较少的ResNet-18或ResNet-34进行快速训练和调试,或者使用层数较多的ResNet-50、ResNet-101或ResNet-152等进行更复杂的任务。 4.定义前向传播函数:根据ResNet网络结构,定义前向传播函数。这个函数将输入数据作为输入,并通过每个残差模块向前传播,直到最后一层输出预测结果。 5.定义损失函数和优化器:根据任务的特点,选择适当的损失函数,例如均方误差损失函数(Mean Squared Error)或交叉熵损失函数(Cross Entropy)。然后,选择适当的优化器,例如随机梯度下降(SGD)或Adam优化器等。 6.训练模型:将数据集分为训练集和验证集,通过模型的前向传播计算预测值,并与真实值进行比较,计算损失函数并反向传播更新参数。重复这个过程多次,直到模型收敛。 7.评估和调优模型:通过验证集对模型进行评估,可以计算准确精确、召回等指标。根据评估结果,对模型进行调优,例如调整学习、增加训练数据或调整网络结构等。 8.使用模型进行预测:对于未知的输入数据,使用训练好的模型进行预测,并获取预测结果。 综上所述,搭建ResNet深度学习网络包括导入库和模块、定义基本块和网络结构、定义前向传播函数、定义损失函数和优化器、训练模型、评估和调优模型以及使用模型进行预测。 ### 回答3: 搭建一个 ResNet 深度学习网络可以分为以下几个步骤: 1. 数据预处理:收集和准备用于训练的图像数据集。对图像进行预处理,如大小调整、归一化、裁剪等操作,以便于网络的训练和测试。 2. 构建残差块(Residual Block):ResNet 的核心是残差学习,通过添加残差块来增加网络的深度。残差块由两个或三个卷积层组成,其中包含一个跳跃连接(shortcut connection),可以绕过一部分网络层直接连到后续层。 3. 构建 ResNet 模型:使用多个残差块构建 ResNet 模型。根据任务的复杂度和要求,可以选择不同深度的 ResNet(如 ResNet-18、ResNet-34、ResNet-50 等)。 4. 添加全局平均池化层:在 ResNet 的最后一部分添加一个全局平均池化层,将特征图转换为一个固定长度的向量。 5. 添加全连接层和输出层:在全局平均池化层后添加一个全连接层和一个输出层,用于对输入进行分类或回归等任务。 6. 模型训练:使用训练数据对搭建好的 ResNet 模型进行训练。选择合适的损失函数和优化算法,并根据训练集的大小和模型的复杂度设置适当的训练参数。 7. 模型评估:在测试数据上对训练好的模型进行评估,计算模型的准确、精度、召回等指标,判断模型的性能。 8. 模型优化:根据评估结果对模型进行优化,可以调整网络结构、调整超参数、增加正则化等方法来提高模型性能。 9. 模型应用:将优化后的模型用于实际场景,进行图像分类、对象检测、图像生成等各种深度学习任务。 总之,搭建 ResNet 深度学习网络是一个多步骤的过程,需要根据具体任务和数据集进行选择和调整。通过不断优化和训练,可以得到性能较好的深度学习模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值