resnet

ResNet

三世轮回 提交于 2019-12-01 18:55:54
论文:Deep Residual Learning for Image Recognition 发表时间:2015 发表作者:(Microsoft Research)He-Kaiming, Ren-Shaoqing, Sun-Jian 论文链接: 论文链接 ResNet Resnet差不多是当前应用最为广泛的CNN特征提取网络。它的提出始于2015年,作者中间有大名鼎鼎的三位人物He-Kaiming, Ren-Shaoqing, Sun-Jian。 VGG网络试着探寻了一下深度学习网络的深度究竟可以深几许以能持续地提高分类准确率。我们的一般印象当中,深度学习愈是深(复杂,参数多)愈是有着更强的表达能力。凭着这一基本准则CNN分类网络自Alexnet的7层发展到了VGG的16乃至19层,后来更有了Googlenet的22层。可后来我们发现深度CNN网络达到一定深度后再一味地增加层数并不能带来进一步地分类性能提高,反而会招致网络收敛变得更慢,test dataset的分类准确率也变得更差。排除数据集过小带来的模型过拟合等问题后,我们发现过深的网络仍然还会使分类准确度下降(相对于较浅些的网络而言)。 VGG网络达到19层后再增加层数就开始导致分类性能的下降。而Resnet网络作者则想到了常规计算机视觉领域常用的residual representation的概念

卷积神经网络(CNN)

耗尽温柔 提交于 2019-12-01 10:16:37
卷积神经网络( CNN ) 1.1 二维卷积层 卷积神经网络是含有卷积层的神经网络,均使用最常见的二维卷积层,它有高和宽两个空间维度,常用来处理图像数据。 1.1.1 二维互相关运算 在二维卷积层中,一个二维输入数组和一个二维核数组通过互相关运算输出一个二维数组。 输入一个高和宽均为3的二维数组,核数组的高和宽均为2,核数组在卷积计算中又称卷积核或过滤器,卷积核窗口(卷积窗口)的形状取决于卷积核的高和宽。 1.1.2 二维卷积层 二维卷积层将输入和卷积核做互相关运算,并加上一个标量偏差来得到输出。卷积层的模型参数包括卷积核与标量偏差。在训练模型时,通常先对卷积核随机初始化,然后不断迭代卷积核与偏差。 卷积窗口形状为p x q的卷积层称为p x q卷积层,说明卷积核的高和宽分别为p和q。 1.1.3 图像中物体边缘检测 卷积层的简单应用:检测图像中物体的边缘,即找到像素变化的位置。卷积层可以通过重复使用卷积核有效的表征局部空间。 1.1.4 通过数据学习核数组 例子:使用物体边缘检测中的输入数据x,输出数据y,来构造核数组k。首先构造一个卷积层,将卷积核初始化成随机数组,在每一次迭代中,使用平方误差来比较Y和卷积层的输出,然后计算梯度来更新权重。 1.15 特征图和感受野 特征图:二维卷积层输出的二维数组可以看做是输入在空间维度(宽和高)上某一级的表征。 感受野

神经网络模型(Backbone)

岁酱吖の 提交于 2019-11-30 19:52:14
  自己搭建神经网络时,一般都采用已有的网络模型,在其基础上进行修改。从2012年的AlexNet出现,如今已经出现许多优秀的网络模型,如下图所示。 主要有三个发展方向:     Deeper:网络层数更深,代表网络VggNet     Module: 采用模块化的网络结构(Inception),代表网络GoogleNet     Faster: 轻量级网络模型,适合于移动端设备,代表网络MobileNet和ShuffleNet     Functional: 功能型网络,针对特定使用场景而发展出来。如检测模型YOLO,Faster RCNN;分割模型FCN, UNet   其发展历史可以分为三个阶段:   这些模型在ImageNet上的表现效果对比如下:    1. LeNet-5   LeNet-5是LeCun在1998年的论文中 Gradient-Based Learning Applied to Document Recognition 提出的网络模型,其结构如下:(其中卷积为5*5的kernel,下采样为2*2的MaxPooling),其结构比较简单,关于LeNet-5结构设计的详细分析,参见: 参考一 , 参考二 2. AlexNet   AlexNet是Alex Krizhevsky在2012的文章ImageNet Classification with Deep

深度残差收缩网络:(二)整体思路

强颜欢笑 提交于 2019-11-30 15:50:23
  其实,这篇文章的摘要很好地总结了整体的思路。一共四句话,非常简明扼要。   我们首先来翻译一下论文的摘要:       第一句:This paper develops new deep learning methods, namely, deep residual shrinkage networks, to improve the feature learning ability from highly noised vibration signals and achieve a high fault diagnosing accuracy.    翻译: 本文提出了新的深度学习方法,即深度残差收缩网络,来提高深度学习算法从强噪声信号中学习特征的能力,并且取得较高的故障诊断准确率。    解释:不仅明确了所提出的方法(深度残差收缩网络),而且指出了面向的信号类型(强噪声信号)。       第二句: Soft thresholding is inserted as nonlinear transformation layers into the deep architectures to eliminate unimportant features.    翻译: 软阈值化作为非线性层,嵌入到深度神经网络之中,以消除不重要的特征。    解释

Scale layer in Caffe

那年仲夏 提交于 2019-11-30 06:40:29
I am looking through the Caffe prototxt for deep residual networks and have noticed the appearance of a "Scale" layer. layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "scale2b_branch2b" type: "Scale" scale_param { bias_term: true } } However, this layer is not available in the Caffe layer catalogue . Can someone explain the functionality of this layer and the meaning of the parameters or point to a an up-to-date documentation for Caffe? You can find a detailed documentation on caffe here . Specifically, for "Scale" layer the doc reads : Computes a product of two input Blobs, with

ResNet学习笔记

纵然是瞬间 提交于 2019-11-30 01:59:08
ResNet Deep Residual Learning for Image Recognition Abstract & Introduction 深层网络具有难以训练的特点,例如,出现梯度弥散/爆炸(这件事通过初始值正则化和BN层解决了) 另一个困难是,当层数过高时,准确率达到饱和后开始迅速下降,而这并非是由过拟合造成,而是由于优化过程造成;在本文中,通过引入deep residual learning framework 来解决该问题 想法是优化残差 $ F(x)=H(x)-x $ $ y = F(x, {W_i}) + W_sx $ ,仅当需要调节维度时 $W_s \neq 0 $ F(x)与x 直接相加,没有引入新的参数,保证了计算速度 以上操作不仅可以用于线性层,还能用于卷积层 Related Work Residual Representation 残差编码; 多重网格法解PDE Shortcut Connections 通过将input和output做element-wise的直接相加,加快了训练速度 Architecture Shortcut 的3种方式: 使用线性投影 使用恒等投影,不足处补零 维度一致时使用恒等投影,否则使用线性投影 实验结果表明使用线性投影可以使准确率略有提升但相差不大,故通常使用更为经济的方法2 更深的residual block 来源:

Resnet理解

给你一囗甜甜゛ 提交于 2019-11-29 14:58:37
文章目录 ResNet 解析 ResNet34实现: torchvision.models 中的 resnet34 源码 ResNet 解析 Resnet 解析 ResNet34实现: from torch import nn from torch . nn import functional as F class ResidualBlaock ( nn . Module ) : def __init__ ( self , in_channel , out_channel , stride = 1 , shortcut = None ) : ''' 实现residual ''' super ( ) . __init__ ( ) self . left = nn . Sequential ( nn . Conv2d ( in_channel , out_channel , kernel_size = 3 , stride = stride , padding = 1 , bias = False ) , nn . BatchNorm2d ( out_channel ) , nn . ReLU ( inplace = True ) , nn . Conv2d ( out_channel , out_channel , kernel_size = 3 , stride = 1 ,

Scale layer in Caffe

帅比萌擦擦* 提交于 2019-11-29 06:18:12
问题 I am looking through the Caffe prototxt for deep residual networks and have noticed the appearance of a "Scale" layer. layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "scale2b_branch2b" type: "Scale" scale_param { bias_term: true } } However, this layer is not available in the Caffe layer catalogue. Can someone explain the functionality of this layer and the meaning of the parameters or point to a an up-to-date documentation for Caffe? 回答1: You can find a detailed documentation

Tensorflow Allocation Memory: Allocation of 38535168 exceeds 10% of system memory

被刻印的时光 ゝ 提交于 2019-11-29 01:20:58
Using ResNet50 pre-trained Weights I am trying to build a classifier. The code base is fully implemented in Keras high-level Tensorflow API. The complete code is posted in the below GitHub Link. Source Code: Classification Using RestNet50 Architecture The file size of the pre-trained model is 94.7mb . I loaded the pre-trained file new_model = Sequential() new_model.add(ResNet50(include_top=False, pooling='avg', weights=resnet_weight_paths)) and fit the model train_generator = data_generator.flow_from_directory( 'path_to_the_training_set', target_size = (IMG_SIZE,IMG_SIZE), batch_size = 12,

DL 学习笔记———Resnet

我的梦境 提交于 2019-11-28 13:17:22
Resnet 学习笔记 前言 ​ 学了几个月的神经网络,感觉也没学到什么东西,炼丹能力倒是提升不少。。。不能只停留在应用方面,还是要掌握理论,因此就想借助博客园把我学到的理论知识都记录下来,也算是加深记忆了。 ​ 最近在看一些著名的网络模型,就从Resnet着手写下第一篇博客(主要是GoogleNet太复杂。。。) Why Resnet ​ 当今世界,神经网络模型越来越深,那么是不是越深的模型就越好呢? ​ 论文中首先提出了一个问题:Degradation problem。具体来说就是随着网络深度的加深,准确率饱和(包括test_acc 和 train_acc),甚至快速下降。造成这个问题的原因显然不是过拟合(过拟合train_acc应该高),论文中也说不是梯度消失/爆炸(各种normalization包括BN能有效解决梯度消失问题)。 ​ 那么为什么会造成Degradation,论文中其实也没有详细的解释,网上也是众说纷纭,但是这不影响resnet的提出。 ​ 我们设想有两个网络 \(N_1\) 和 \(N_2\) ,两个网络要拟合同一个函数 \(H(x)\) 。然而 \(N_1\) 只有10层, \(N_2\) 有100层。两个网络训练出的函数我们记为 \(H_{N1}(x)\) , \(H_{N2}(x)\) ,实验表明 \(N_2\) 的拟合效果不如 \(N_1\) ,即