微信公众号:数据挖掘与分析学习
1. tf.layers.Conv2D
Class Conv2D:2D卷积层,如图像上的空间卷积
该层创建卷积核,该卷积核与层的输入卷积(实际上是交叉相关)以产生输出张量。 如果use_bias为True(并且提供了bias_initializer),则会创建偏置向量并将其添加到输出。 最后,如果激活函数不是None,它也会应用于输出。
参数:
- filters:整数,输出空间的维度。例如,卷积中filter的数量。
- kernel_size:一个整数或一个两个整数的tuple/list,指定二维卷积窗口的高和宽。也可以是一个整数为所有的空间维度指定同样的值。
- strides:一个整数或一个两个整数的tuple/list,指定沿着高和宽的卷积的步幅。也可以是一个整数为所有的空间维度指定同样的值。指定任何!=1的步幅值与指定任何dilation_rate值!=1不相容
- padding:”valid”或者”same”
- data_format:一个字符串,channels_last(默认)或channels_first中的一个,输入中维度的排序,channels_last对应于具有形状(batch,height, width, channels)的输入,而channels_first对应于具有形状(batch, channels, height,width)的输入。
- dilation_rate:一个整数或一个两个整数的tuple/list,指定用于扩张的卷积的扩张率。也可以是一个整数为所有的空间维度指定同样的值。指定任何!=1的步幅值与指定任何dilation_rate值!=1不相容
- activation:激活函数,将其设置为None则是线性函数
- use_bias:Boolean,表示是否使用偏置
- kernel_initializer:卷积核的初始化器
- bias_initializer:偏置向量的初始化器,如果为None,则使用默认的初始化器
- kernel_regularizer:用于卷积核的可选正则化器。
- bias_regularizer:用于偏置向量的可选正则化器。
- activity_regularizer:用于输出的可选正则化函数
- kernel_constraint:在由优化器更新之后应用于内核的可选投影函数(例如,用于实现层权重的范数约束或值约束)。 该函数必须将未投影的变量作为输入,并且必须返回投影变量(必须具有相同的形状)。 在进行异步分布式训练时,使用约束是不安全的。
- bias_constraint:可选的投影功能,在优化器进行更新后应用于偏差。
- trainable:Boolean,如果为Ture将变量添加到图集合GraphKeys.TRAINABLE_VARIABLES中。
- name:层的名称。
代码示例:
x=tf.Variable(tf.random_normal([10,28,28,3])) #[batch_szie,height,weight,channel] conv2D=tf.layers.Conv2D(filters=64,kernel_size=[2,2],strides=1,padding='SAME') print(conv2D(x)) conv2D=tf.layers.Conv2D(filters=64,kernel_size=[2,2],strides=2) print(conv2D(x)) |
输出:
Tensor("conv2d_16/BiasAdd:0", shape=(10, 28, 28, 64), dtype=float32)
Tensor("conv2d_17/BiasAdd:0", shape=(10, 14, 14, 64), dtype=float32)
2. tf.layers.conv2d
参数和作用同Conv2D类。
tf.layers.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, kernel_constraint=None, bias_constraint=None, trainable=True, name=None, reuse=None ) |
print(tf.layers.conv2d(x,filters=64,kernel_size=[2,2],strides=1,padding='SAME')) |
3. tf.layers.AveragePooling2D
Class AveragePooling2D:针对2D输入的平均池化层
参数:
- pool_size:一个整数或者2个整数的元组/列表:(pool_height,pool_width),指定池化窗口的大小。 可以是单个整数,以为所有空间维度指定相同值。
- strides:一个整数或者2个整数的元组/列表,指定池操作的步幅。 可以是单个整数,以为所有空间维度指定相同值。
- padding:字符串,“valid”或者”same”
- data_format:一个字符串,channels_last(默认)或channels_first中的一个,输入中维度的排序,channels_last对应于具有形状(batch,height, width, channels)的输入,而channels_first对应于具有形状(batch, channels, height,width)的输入。
- name:层的名称。
ave_pool2D=tf.layers.AveragePooling2D(pool_size=[2,2],strides=[2,1],padding='SAME') print(ave_pool2D(x)) ave_pool2D=tf.layers.AveragePooling2D(pool_size=[2,2],strides=[2,2],padding='SAME') print(ave_pool2D(x)) |
输出:
Tensor("average_pooling2d_4/AvgPool:0", shape=(10, 14, 28, 3), dtype=float32) Tensor("average_pooling2d_5/AvgPool:0", shape=(10, 14, 14, 3), dtype=float32) |
4. tf.layers.average_pooling2d
tf.layers.average_pooling2d( inputs, pool_size, strides, padding='valid', data_format='channels_last', name=None ) |
参数:
inputs:输入的张量
其它参数同AveragePooling2D类。
作用与AveragePooling2D一样。