ResNet

ResNet

一、简介
ResNet(Residual Neural Network)由微软研究院的Kaiming He等四名华人提出,ResNet是一种残差网络。

二、亮点
1、超深的网络结构
2、提出了residual模块
3、使用Batch Normalization加速训练
在这里插入图片描述
三、residual结构
在这里插入图片描述
右图中1X1的卷积核是用来降维和升维的

3X3X256X256+3X3X256X256=1179648
1x1x256x64+3x3x64x64+1x1x64x256=69632
当你使用的传达结构越多,你所节省的参数也就越多

四、ResNet搭建

import tensorflow as tf
import tensorflow.contrib.slim as slim
import collection
from datetime import datetime
import time
import math
from tensorflow.contrib.layers.python.layers import utils
#定义Block类
class Block(collections.namedtuple('Block',['scope','unit_fn','args'])):
#定义相关函数
#定义降采样方法
def subsample(inputs,factor,scope=None):
    if factor==1:
        return inputs
    else:
        return slim.max_pool2d(inputs,kernel_size=[1,1],stride=factor,scope=scope)
#定义卷积操作方法
def conv2d_same(inputs,num_outputs,kernel_size,stride,scope=None):
    if stride==1:
        return slim.conv2d(inputs,num_outputs,kernel_size,stride=1,padding='SAME',scope=scope)
    else:
        #修整Inputs,对inputs进行补零操作
        padding_total=kernel_size-1
        padding_beg=padding_total//2
        padding_end=padding_total-padding_beg
        inputs=tf.pad(inputs,[[0,0],[padding_beg,padding_end],[padding_beg,padding_end],[0,0]])
        return slim.conv2d(inputs,num_outputs,kernel_size,stride=stride,padding='VALID',scope=scope)
#定义堆叠block方法
@slim.add_arg_scope
def stack_block_dense(net,blocks,outputs_collections=None):
    for block in blocks:
        #双层循环,遍历blocks,遍历res unit堆叠
        with tf.variable_scope(block.scope,'block',[net]) as sc:
            #用两个tf.variable_scope将残差学习单元命名为block1/unit_1的形式
            for i ,unit in enumerate(block.args):
                with tf.variable_scope('unit_%d'%(i+1),values=[net]):
                    #利用第二层循环拿到block中的args,将其展开为depth,depth_bottleneck,strdie
                    unit_depth,unit_depth_bottleneck,unit_stride
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值