slim.conv2d函数的变量解释和padding方式中same与vaild的差别

slim.conv2d(inputs, num_outputs, kernel_size, stride=stride,
                      rate=rate, padding='VALID', scope=scope)

slim:tensorflow中让结构更加紧凑纤细的函数
num_outputs:卷积核的个数,体现在输出中
stride:步幅
rate:空洞卷积膨胀率,在卷积核的两两数值之间加入rate-1个0
padding:卷积的方式,包括SAME(卷积核的中心开始接触到图像),VAILD(卷积核全部接触到图像),FULL(卷积核开始接触到图像)
​ ​ ​ ​ s a m e : n o u t p u t = ⌈ n i n p u t s ⌉ {​​​​\mathop{{{same:n}}}\nolimits_{{output}}={ \left\lceil {\frac{{n\mathop{{}}\nolimits_{{input}}}}{{s}}} \right\rceil }} same:noutput=sninput
V a i l d : n o u t p u t = ⌈ n i n p u t − f + 1 s ⌉ {\mathop{{{Vaild:n}}}\nolimits_{{output}}={ \left\lceil {\frac{{n\mathop{{}}\nolimits_{{input}}-f+1}}{{s}}} \right\rceil }} Vaild:noutput=sninputf+1

FULL
SAME
VAILD

图片来源

net = slim.conv2d(inputs, num_outputs, 3, stride=1, padding='SAME')
net = subsample(net, factor=stride)
net = conv2d_same(inputs, num_outputs, 3, stride=stride)
  • 据说后两个的结果是一样的,但是第一个的结果貌似在输入的维度存在偶数时会有差异
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`slim.conv2d`是TensorFlowSlim框架的卷积层函数,而`tensorflow.keras.layers.conv2d`是TensorFlowKeras框架的卷积层函数。 两者所提供的功能都是实现2D卷积层,但是使用方式和参数设置不同: `slim.conv2d`: ```python slim.conv2d(inputs, num_outputs, kernel_size, stride=1, padding='SAME', activation_fn=tf.nn.relu, normalizer_fn=None, weights_initializer=tf.truncated_normal_initializer(stddev=0.1), biases_initializer=tf.zeros_initializer(), scope=None) ``` 其各参数含义为: - `inputs`:输入的tensor - `num_outputs`:卷积核的数量,也就是输出的通道数 - `kernel_size`:卷积核大小 - `stride`:卷积核滑动步长,默认为1 - `padding`:卷积层补零的方式,可以设置为`SAME`或者`VALID` - `activation_fn`:激活函数,默认为ReLu - `normalizer_fn`:正则化函数,如BN层 - `weights_initializer`:权重初始化函数 - `biases_initializer`:偏置初始化函数 - `scope`:变量作用域 `tensorflow.keras.layers.conv2d`: ```python tf.keras.layers.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, **kwargs) ``` 其各参数含义为: - `filters`:输出的通道数 - `kernel_size`:卷积核的大小 - `strides`:卷积核滑动步长,默认为(1,1) - `padding`:卷积层补零方式,默认为`valid` - `activation`:激活函数,默认为`None` - `use_bias`:是否使用偏置 - `kernel_initializer`:权重初始化函数 - `bias_initializer`:偏置初始化函数 - `kernel_regularizer`:权重正则化函数 - `bias_regularizer`:偏置正则化函数 - `activity_regularizer`:输出正则化函数 - `kernel_constraint`:权重约束函数 - `bias_constraint`:偏置约束函数 总的来说,`tensorflow.keras.layers.conv2d`提供了更多的参数设置选项,控制更加细致,但对于简单的应用场景,`slim.conv2d`更简单方便。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值