沧州企业网站制作,直播网站排名,酒泉网站怎么做seo,网站专题制作流程文章目录目录1.残差网络基础1.1基本概念1.2VGG19、ResNet34结构图1.3 梯度弥散和网络退化1.4 残差块变体1.5 ResNet模型变体1.6 Residual Network补充1.7 1*1卷积核#xff08;补充#xff09;2.残差网络介绍#xff08;何凯明#xff09;3.ResNet-50(Ng)3.1 非常深的神经网…
文章目录目录1.残差网络基础1.1基本概念1.2VGG19、ResNet34结构图1.3 梯度弥散和网络退化1.4 残差块变体1.5 ResNet模型变体1.6 Residual Network补充1.7 1*1卷积核补充2.残差网络介绍何凯明3.ResNet-50(Ng)3.1 非常深的神经网络问题3.2 建立一个残差网络3.3first ResNet model50layers3.4 代码实现4.ResNet 100-1000层4.1 152层目录
1.残差网络基础
1.1基本概念
非常非常深的神经网络是很难训练的因为存在梯度消失和梯度爆炸问题。ResNets是由残差块Residual block构建的首先解释一下什么是残差块。 残差块结构
1.2VGG19、ResNet34结构图 1.3 梯度弥散和网络退化 1.4 残差块变体
自AlexNet以来state-of-the-art的CNN结构都在不断地变深。VGG和GoogLeNet分别有19个和22个卷积层而AlexNet只有5个。
ResNet基本思想引入跳过一层或多层的shortcut connection。
1.5 ResNet模型变体
1ResNeXt 2DenseNet
1.6 Residual Network补充 1.7 1*1卷积核补充
*1的卷积核相当于对一个切片上的nc个单元都应用了一个全连接的神经网络
2.残差网络介绍何凯明 3.ResNet-50(Ng)
3.1 非常深的神经网络问题 3.2 建立一个残差网络
使用 short connect的残差块能很容易的学习标识功能。在其他ResNet块上进行堆栈不会损害训练集的性能。 1identity block 标准块 2convolutional block 当输入和输出的尺寸不匹配时使用
3.3first ResNet model50layers 3.4 代码实现
def identity_block(X, f, filters, stage, block):X -- 输入tensor, shape(m, n_H_prev, n_W_prev, n_C_prev)f -- identity block主路径中间卷积层的滤波器大小filters -- [f1,f2,f3]对应主路径中三个卷积层的滤波器个数stage -- 用于命名层阶段数字表示:1/2/3/4/5...block -- 用于命名层每个阶段中的残差块字符表示a/b/c/d/e/f...Return X -- identity block 输出tensor shape(m, n_H, n_W, n_C) define name basisconv_name_base res str(stage) block _branchbn_name_base bn str(stage) block _branchget filter numberF1, F2, F3 filterssave the input valueX_shortcut X主路径的第一层conv-bn-reluX Conv2D(filtersF1, kernel_size(1,1), strides(1,1), paddingvalid,nameconv_name_base2a, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_name_base2a)(X)X Activation(relu)(X)主路径的第二层conv-bn-reluX Conv2D(filtersF2, kernel_size(f,f), strides(1,1), paddingsame,nameconv_name_base2b, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_name_base2b)(X)X Activation(relu)(X)主路径的第三层conv-bnX Conv2D(filtersF3, kernel_size(1,1), strides(1,1), paddingvalid,nameconv_name_base2c, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_name_base2c)(X)add shortcut and reluX Add()([X, X_shortcut])X Activation(relu)(X)return Xs -- convolutional block中主路径第一个卷积层和shortcut卷积层滤波器滑动步长s2用来降低图片大小
def convolutional_block(X, f, filters, stage, block, s2):conv_name_base res str(stage) block _branchbn_name_base bn str(stage) block _branchF1, F2, F3 filtersX_shortcut X1st layerX Conv2D(filtersF1, kernel_size(1,1), strides(s,s), paddingvalid,nameconv_name_base2a, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_name_base2a)(X)X Activation(relu)(X)2nd layerX Conv2D(filtersF2, kernel_size(f,f), strides(1,1), paddingsame,nameconv_name_base2b, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_name_base2b)(X)X Activation(relu)(X)3rd layerX Conv2D(filtersF3, kernel_size(1,1), strides(1,1), paddingvalid,nameconv_name_base2c, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_name_base2c)(X)shortcut pathX_shortcut Conv2D(filtersF3, kernel_size(1,1), strides(s,s), paddingvalid,nameconv_name_base1, kernel_initializerglorot_uniform(seed0))(X_shortcut)X_shortcut BatchNormalization(axis3, namebn_name_base1)(X_shortcut)X Add()([X, X_shortcut])X Activation(relu)(X)return Xdef ResNet50(input_shape(64,64,3), classes6):input - zero padding stage1conv - BatchNorm - relu - maxpoolstage2: conv block - identity block *2stage3: conv block - identity block *3stage4: conv block - identity block *5stage5: conv block - identity block *2avgpool - flatten - fully connectinput_shape -- 输入图像的shapeclasses -- 类别数Return a model() instance in Keras用input_shape定义一个输入tensorX_input Input(input_shape)zero paddingX ZeroPadding2D((3,3))(X_input)stage 1X Conv2D(filters64, kernel_size(7,7), strides(2,2), paddingvalid,nameconv1, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_conv1)(X)X MaxPooling2D((3,3), strides(2,2))(X)stage 2X convolutional_block(X, f3, filters[64,64,256], stage2, blocka, s1)X identity_block(X,f3, filters[64,64,256], stage2, blockb)X identity_block(X,f3, filters[64,64,256], stage2, blockc)stage 3X convolutional_block(X, f3, filters[128,128,512], stage3, blocka, s2)X identity_block(X, f3, filters[128,128,512], stage3, blockb)X identity_block(X, f3, filters[128,128,512], stage3, blockc)X identity_block(X, f3, filters[128,128,512], stage3, blockd)stage 4X convolutional_block(X, f3, filters[256,256,1024], stage4, blocka, s2)X identity_block(X, f3, filters[256,256,1024], stage4, blockb)X identity_block(X, f3, filters[256,256,1024], stage4, blockc)X identity_block(X, f3, filters[256,256,1024], stage4, blockd)X identity_block(X, f3, filters[256,256,1024], stage4, blocke)X identity_block(X, f3, filters[256,256,1024], stage4, blockf)stage 5X convolutional_block(X, f3, filters[512,512,2048], stage5, blocka, s2)X identity_block(X, f3, filters[512,512,2048], stage5, blockb)X identity_block(X, f3, filters[512,512,2048], stage5, blockc)fully connectX AveragePooling2D((2,2), nameavg_pool)(X)X Flatten()(X)X Dense(classes, activationsoftmax, namefcstr(classes),kernel_initializerglorot_uniform(seed0))(X)a model() instance in Kerasmodel Model(inputsX_input, outputsX, nameResNet50)return model4.ResNet 100-1000层 4.1 152层 代码
def ResNet101(input_shape(64,64,3), classes6):input - zero padding stage1conv - BatchNorm - relu - maxpoolstage2: conv block - identity block *2stage3: conv block - identity block *3stage4: conv block - identity block *22stage5: conv block - identity block *2avgpool - flatten - fully connectinput_shape -- 输入图像的shapeclasses -- 类别数Return a model() instance in Keras用input_shape定义一个输入tensorX_input Input(input_shape)zero paddingX ZeroPadding2D((3,3))(X_input)stage 1X Conv2D(filters64, kernel_size(7,7), strides(2,2), paddingvalid,nameconv1, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_conv1)(X)X MaxPooling2D((3,3), strides(2,2))(X)stage 2X convolutional_block(X, f3, filters[4,4,16], stage2, blocka, s1)X identity_block(X,f3, filters[4,4,16], stage2, blockb)X identity_block(X,f3, filters[4,4,16], stage2, blockc)stage 3X convolutional_block(X, f3, filters[8,8,32], stage3, blocka, s2)X identity_block(X, f3, filters[8,8,32], stage3, blockb)X identity_block(X, f3, filters[8,8,32], stage3, blockc)X identity_block(X, f3, filters[8,8,32], stage3, blockd)stage 4identity block from 5(50 layers) to 22(101 layers)X convolutional_block(X, f3, filters[16,16,64], stage4, blocka, s2)X identity_block(X, f3, filters[16,16,64], stage4, blockb)X identity_block(X, f3, filters[16,16,64], stage4, blockc)X identity_block(X, f3, filters[16,16,64], stage4, blockd)X identity_block(X, f3, filters[16,16,64], stage4, blocke)X identity_block(X, f3, filters[16,16,64], stage4, blockf)X identity_block(X, f3, filters[16,16,64], stage4, blockg)X identity_block(X, f3, filters[16,16,64], stage4, blockh)X identity_block(X, f3, filters[16,16,64], stage4, blocki)X identity_block(X, f3, filters[16,16,64], stage4, blockj)X identity_block(X, f3, filters[16,16,64], stage4, blockk)X identity_block(X, f3, filters[16,16,64], stage4, blockl)X identity_block(X, f3, filters[16,16,64], stage4, blockm)X identity_block(X, f3, filters[16,16,64], stage4, blockn)X identity_block(X, f3, filters[16,16,64], stage4, blocko)X identity_block(X, f3, filters[16,16,64], stage4, blockp)X identity_block(X, f3, filters[16,16,64], stage4, blockq)X identity_block(X, f3, filters[16,16,64], stage4, blockr)X identity_block(X, f3, filters[16,16,64], stage4, blocks)X identity_block(X, f3, filters[16,16,64], stage4, blockt)X identity_block(X, f3, filters[16,16,64], stage4, blocku)X identity_block(X, f3, filters[16,16,64], stage4, blockv)X identity_block(X, f3, filters[16,16,64], stage4, blockw)stage 5X convolutional_block(X, f3, filters[32,32,128], stage5, blocka, s2)X identity_block(X, f3, filters[32,32,128], stage5, blockb)X identity_block(X, f3, filters[32,32,128], stage5, blockc)fully connectX AveragePooling2D((2,2), nameavg_pool)(X)X Flatten()(X)X Dense(classes, activationsoftmax, namefcstr(classes),kernel_initializerglorot_uniform(seed0))(X)a model() instance in Kerasmodel Model(inputsX_input, outputsX, nameResNet101)return modeldef ResNet152(input_shape(64,64,3), classes6):input - zero padding stage1conv - BatchNorm - relu - maxpoolstage2: conv block - identity block *2stage3: conv block - identity block *7stage4: conv block - identity block *35stage5: conv block - identity block *2avgpool - flatten - fully connectinput_shape -- 输入图像的shapeclasses -- 类别数Return a model() instance in Keras用input_shape定义一个输入tensorX_input Input(input_shape)zero paddingX ZeroPadding2D((3,3))(X_input)stage 1X Conv2D(filters64, kernel_size(7,7), strides(2,2), paddingvalid,nameconv1, kernel_initializerglorot_uniform(seed0))(X)X BatchNormalization(axis3, namebn_conv1)(X)X MaxPooling2D((3,3), strides(2,2))(X)stage 2X convolutional_block(X, f3, filters[64,64,256], stage2, blocka, s1)X identity_block(X,f3, filters[64,64,256], stage2, blockb)X identity_block(X,f3, filters[64,64,256], stage2, blockc)stage 3identity block from 3(101 layers) to 7(152 layers)X convolutional_block(X, f3, filters[128,128,512], stage3, blocka, s2)X identity_block(X, f3, filters[128,128,512], stage3, blockb)X identity_block(X, f3, filters[128,128,512], stage3, blockc)X identity_block(X, f3, filters[128,128,512], stage3, blockd)X identity_block(X, f3, filters[128,128,512], stage3, blocke)X identity_block(X, f3, filters[128,128,512], stage3, blockf)X identity_block(X, f3, filters[128,128,512], stage3, blockg)X identity_block(X, f3, filters[128,128,512], stage3, blockh)stage 4identity block from 22(101 layers) to 35(152 layers)X convolutional_block(X, f3, filters[256,256,1024], stage4, blocka, s2)X identity_block(X, f3, filters[256,256,1024], stage4, blockb)X identity_block(X, f3, filters[256,256,1024], stage4, blockc)X identity_block(X, f3, filters[256,256,1024], stage4, blockd)X identity_block(X, f3, filters[256,256,1024], stage4, blocke)X identity_block(X, f3, filters[256,256,1024], stage4, blockf)X identity_block(X, f3, filters[256,256,1024], stage4, blockg)X identity_block(X, f3, filters[256,256,1024], stage4, blockh)X identity_block(X, f3, filters[256,256,1024], stage4, blocki)X identity_block(X, f3, filters[256,256,1024], stage4, blockj)X identity_block(X, f3, filters[256,256,1024], stage4, blockk)X identity_block(X, f3, filters[256,256,1024], stage4, blockl)X identity_block(X, f3, filters[256,256,1024], stage4, blockm)X identity_block(X, f3, filters[256,256,1024], stage4, blockn)X identity_block(X, f3, filters[256,256,1024], stage4, blocko)X identity_block(X, f3, filters[256,256,1024], stage4, blockp)X identity_block(X, f3, filters[256,256,1024], stage4, blockq)X identity_block(X, f3, filters[256,256,1024], stage4, blockr)X identity_block(X, f3, filters[256,256,1024], stage4, blocks)X identity_block(X, f3, filters[256,256,1024], stage4, blockt)X identity_block(X, f3, filters[256,256,1024], stage4, blocku)X identity_block(X, f3, filters[256,256,1024], stage4, blockv)X identity_block(X, f3, filters[256,256,1024], stage4, blockw)X identity_block(X, f3, filters[256,256,1024], stage4, blockx)X identity_block(X, f3, filters[256,256,1024], stage4, blocky)X identity_block(X, f3, filters[256,256,1024], stage4, blockz)X identity_block(X, f3, filters[256,256,1024], stage4, blockz1)X identity_block(X, f3, filters[256,256,1024], stage4, blockz2)X identity_block(X, f3, filters[256,256,1024], stage4, blockz3)X identity_block(X, f3, filters[256,256,1024], stage4, blockz4)X identity_block(X, f3, filters[256,256,1024], stage4, blockz5)X identity_block(X, f3, filters[256,256,1024], stage4, blockz6)X identity_block(X, f3, filters[256,256,1024], stage4, blockz7)X identity_block(X, f3, filters[256,256,1024], stage4, blockz8)X identity_block(X, f3, filters[256,256,1024], stage4, blockz9)X identity_block(X, f3, filters[256,256,1024], stage4, blockz10)stage 5X convolutional_block(X, f3, filters[512,512,2048], stage5, blocka, s2)X identity_block(X, f3, filters[512,512,2048], stage5, blockb)X identity_block(X, f3, filters[512,512,2048], stage5, blockc)fully connectX AveragePooling2D((2,2), nameavg_pool)(X)X Flatten()(X)X Dense(classes, activationsoftmax, namefcstr(classes),kernel_initializerglorot_uniform(seed0))(X)a model() instance in Kerasmodel Model(inputsX_input, outputsX, nameResNet152)return model