Slim下的函数介绍

1、slim.conv2d:二维卷积

2、slim.nets.resnet_utils.conv2d_same():使用“SAME”填充的二维卷积

3、 tf.variable_scope()的original_name_scope 和 name的区别:

4、slim.utils.collect_named_outputs(collections, alias, outputs):为output的tensor添加别名,并将tensor添加到collections的列表中

5、slim.separable_conv2d():实现深度可分离卷积

6、slim.learning.train():开始训练

7、slim.evaluation.evaluation_loop():对模型的预测结果进行评估

7、slim.get_variables_to_restore(include=None, exclude=None):

  8、slim.assign_from_checkpoint_fn():

9、tf.contrib.metrics.aggregate_metric_map():

1、slim.conv2d:二维卷积

函数原型:

convolution(inputs, 
        num_outputs, 
        kernel_size, 
        stride=1, 
        padding='SAME',
        data_format =None,
        rate = 1,
        activation_fn = nn.relu,
        normalizer_params=None,
        weights_initializer = initializers.xavier_initializer(),
        weights_regularizer = None,
        biases_initializer = init_ops.zeros_initializer(),
        biases_regularizer = None,
        reuse = None,
        variables_collections = None,
        outputs_collections = None,
        trainable = True,
        scope = None):

 

参数介绍:

    inputs:指需要做卷积的输入图像
    num_outputs:指定卷积核的个数(就是filter的个数)
    kernel_size:N个正整数的序列,指定卷积核的空间维度。 可以是单个整数,则所有空间维度具有相同值。
    stride:一组N个正整数,指定计算输出的stride。 可以是一个整数,则所有空间维具有相同的值。指定任何stride!= 1与指定任何rate!= 1不相容。
    padding:为padding的方式选择,VALID或者SAME
    data_format:是用于指定输入的input的格式
    rate:N个正整数的序列,指定用于萎缩卷积的扩张率。 可以是单个整数,以指定所有空间维度的相同值。 指定任何rate!= 1与指定任何stride!= 1不兼容。
    activation_fn:用于激活函数的指定,默认的为ReLU函数
    normalizer_fn:用于指定正则化函数
    normalizer_params:用于指定正则化函数的参数
    weights_initializer:用于指定权重的初始化程序
    weights_regularizer:为权重可选的正则化程序
    biases_initializer:用于指定biase的初始化程序
    biases_regularizer: biases可选的正则化程序
    reuse:指定是否共享层或者和变量
    variable_collections:指定变量的集合列表或者字典名,变量(weight、biase)会被添加到这个集合中。
    outputs_collections:指定一个列表名,输出(output)会被添加到这个列表。这个(列表名,[output])的键值对位于Graph类的self._collection字典中,如果该字典中没有列表名的关键字,则(列表名,[output])会被创建。
    trainable::卷积层的参数是否可被训练,如果为True,则同样会将变量添加到计算图集合GraphKeys.TRAINABLE_VARIABLES中 
    scope:共享变量所指的variable_scope

2、slim.nets.resnet_utils.conv2d_same():使用“SAME”填充的二维卷积

 函数原型:conv2d_same(inputs, num_outputs, kernel_size, stride, rate=1, scope=None)
    inputs: 一个4维tensor:[batch, height_in, width_in, channels].
    num_outputs:卷积核的个数
    kernel_size: 卷积核的尺寸
    stride: 输出的stride
    rate: 空洞卷积膨胀率
    scope: Scope.

net = conv2d_same(inputs, num_outputs, 3, stride=stride)
#等价于
net = slim.conv2d(inputs, num_outs, 3, stride=1, padding='SAME')
net = subsample(net, factor=stride)
# 但是和net = slim.conv2d(inputs, num_outputs, 3, stride=stride, padding='SAME')不等价,因为输入的高或宽是偶数时, 它是不同的,这就是我们添加当前函数的原因。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值