1.0版本中的卷积函数: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=tf.zeros_initializer(),
kernel_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
trainable=True,
name=None,
reuse=None
)
参数分别表示:
inputs
: 输入数据,4维tensor.filters
: 卷积核个数。kernel_size
:卷积核大小,如【5,5】。如果长宽相等,也可以直接设置为一个数,如kernel_size=5strides
: 卷积过程中的滑动步长,默认为[1,1]. 也可以直接设置为一个数,如strides=2padding
: 边缘填充,'same' 和'valid‘选其一。默认为valid-
data_format
: 输入数据格式,默认为channels_last
,即(batch, height, width, channels),也可以设置为
channels_first
对应(batch, channels, height, width)
. -
dilation_rate
: 微步长卷积,这个比较复杂一些,请百度. activation
: 激活函数.use_bias
: Boolean型,是否使用偏置项.kernel_initializer
: 卷积核的初始化器.bias_initializer
: 偏置项的初始化器,默认初始化为0.kernel_regularizer
: 卷积核化的正则化,可选.bias_regularizer
: 偏置项的正则化,可选.activity_regularizer
: 输出的正则化函数.trainable
: Boolean型,表明该层的参数是否参与训练。如果为真则变量加入到图集合中GraphKeys.TRAINABLE_VARIABLES
(seetf.Variable
).name
: 层的名字.reuse
: Boolean型, 是否重复使用参数.简单例子: conv1 = tf.layers.conv2d( inputs=x, filters=32, kernel_size=[5, 5], padding="same", activation=tf.nn.relu, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01), bias_initializer=tf.constant(0.0), kernel_regularizer=tf.contrib.layers.l2_regularizer(0.003))