Tensorflow API 讲解——tf.layers.conv2d

conv2d(inputs, filters, kernel_size, 
	strides=(1, 1), 
	padding='valid', 
	data_format='channels_last', 
	dilation_rate=(1, 1),
	activation=None, 
	use_bias=True, 
	kernel_initializer=None,
	bias_initializer=<tensorflow.python.ops.init_ops.Zeros object at 0x000002596A1FD898>, 
	kernel_regularizer=None,
	bias_regularizer=None, 
	activity_regularizer=None, 
	kernel_constraint=None, 
	bias_constraint=None, 
	trainable=True, 
	name=None,
	reuse=None)

##作用
2D 卷积层的函数接口
这个层创建了一个卷积核,将输入进行卷积来输出一个 tensor。如果 use_biasTrue(且提供了 bias_initializer),则一个偏差向量会被加到输出中。最后,如果 activation 不是 None,激活函数也会被应用到输出中。
##参数
inputs:Tensor 输入

filters:整数,表示输出空间的维数(即卷积过滤器的数量)

kernel_size:一个整数,或者包含了两个整数的元组/队列,表示卷积窗的高和宽。如果是一个整数,则宽高相等。

strides:一个整数,或者包含了两个整数的元组/队列,表示卷积的纵向和横向的步长。如果是一个整数,则横纵步长相等。另外, strides 不等于1 和 dilation_rate 不等于1 这两种情况不能同时存在。

padding"valid" 或者 "same"(不区分大小写)。"valid" 表示不够卷积核大小的块就丢弃,"same"表示不够卷积核大小的块就补0。
"valid" 的输出形状为
L n e w = c e i l ( L − F + 1 S ) L_{new}= ceil(\frac{L-F+1}{S}) Lnew=ceil(SLF+1)
"same" 的输出形状为
L n e w = c e i l ( L S ) L_{new}= ceil(\frac{L}{S}) Lnew=ceil(SL)
其中, L L L 为输入的 size(高或宽), F F F 为 filter 的 size, S S S 为 strides 的大小, c e i l ( ) ceil() ceil() 为向上取整。

data_formatchannels_last 或者 channels_first,表示输入维度的排序。

`channels_last` corresponds to inputs with shape;
`(batch, height, width, channels)` while `channels_first` corresponds to inputs with shape `(batch, channels, height, width)`.

dilation_rate:一个整数,或者包含了两个整数的元组/队列,表示使用扩张卷积时的扩张率。如果是一个整数,则所有方向的扩张率相等。另外, strides 不等于1 和 dilation_rate 不等于1 这两种情况不能同时存在。

activation:激活函数。如果是None则为线性函数。

use_biasBoolean类型,表示是否使用偏差向量。

kernel_initializer:卷积核的初始化。

bias_initializer:偏差向量的初始化。如果是None,则使用默认的初始值。

kernel_regularizer:卷积核的正则项

bias_regularizer:偏差向量的正则项

activity_regularizer:输出的正则函数

kernel_constraint:映射函数,当核被Optimizer更新后应用到核上。Optimizer 用来实现对权重矩阵的范数约束或者值约束。映射函数必须将未被影射的变量作为输入,且一定输出映射后的变量(有相同的大小)。做异步的分布式训练时,使用约束可能是不安全的。

bias_constraint:映射函数,当偏差向量被Optimizer更新后应用到偏差向量上。

trainableBoolean类型。

name:字符串,层的名字。

reuseBoolean类型,表示是否可以重复使用具有相同名字的前一层的权重。
##返回值
输出 Tensor
##异常抛出
ValueError:if eager execution is enabled.

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
`slim.conv2d`是TensorFlow中Slim框架中的卷积层函数,而`tensorflow.keras.layers.conv2d`是TensorFlow中Keras框架中的卷积层函数。 两者所提供的功能都是实现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`更简单方便。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值