1.tf.layers.AveragePooling1D
Class AveragePooling1D:对一维的输入作平均池化
参数:
- pool_size:一个整数或者一个单个整数的tuple/list,表示池化窗口的大小
- Strides:一个整数或者一个单个整数的tuple/list,指定池化操作的移动步幅
- padding:一个字符串。padding的方法:”valid”或者’same’
- data_format:一个字符串,channels_last(默认)或channels_first中的一个,输入中维度的排序,channels_last对应于具有形状(batch, length, channels)的输入,而channels_first对应于具有形状(batch, channels, length)的输入。
- Name:一个字符串,表示层的名称。
代码示例:
import tensorflow as tf x=tf.Variable(tf.random_normal([2,10,1])) #2表示batch_size,10表示输入向量长度,1表示输入的channel数量 init=tf.global_variables_initializer() average_pool=tf.layers.AveragePooling1D(pool_size=2,strides=2,padding='SAME',activity_regularizer=tf.nn.l2_normalize) y=average_pool(x) print(y.shape) #(2, 5, 1) print(average_pool.activity_regularizer) #<function l2_normalize at 0x000001F04CA3B730> print(average_pool.dtype) #float32 print(average_pool.data_format) #channels_last with tf.Session() as sess: sess.run(init) print(sess.run(y)) print(sess.run(x)) |
2.tf.layers.average_pooling1d
作用跟AveragePooling1D类一样。
tf.layers.average_pooling1d( inputs, pool_size, strides, padding='valid', data_format='channels_last', name=None ) |
x=tf.Variable(tf.random_normal([2,10,1])) x_average_pool=tf.layers.average_pooling1d(x,pool_size=2,padding="SAME",strides=2) print(x_average_pool.shape)(2, 5, 1) |
3.tf.layers.Conv1D
Class Conv1D:一维的卷积层,如时间卷积
该层创建一个卷积核,卷积核与层输入进行卷积(实际上是交叉相关)以产生输出张量。如果use_bias为True(并且提供了bias_initializer),则会创建偏置向量并将其添加到输出。最后,如果激活函数不为None,它也会作用于输出。
参数:
filters:整数,输出空间的维度。例如,卷积中卷积核的数量。
Kernel_size:一个整数或一个单个整数的tuple/list,指定一维卷积窗口的长度
Strides:一个整数或一个单个整数的tuple/list,指定卷积的步幅。指定任何!=1的步幅值与指定任何dilation_rate值!=1不相容
Padding:”valid”或者”same”
data_format:一个字符串,channels_last(默认)或channels_first中的一个,输入中维度的排序,channels_last对应于具有形状(batch, length, channels)的输入,而channels_first对应于具有形状(batch, channels, length)的输入。
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中。
代码示例:
import tensorflow as tf x=tf.Variable(tf.random_normal([2,10,1])) #2表示batch_size,10表示输入向量长度,1表示输入的channel数量 conv1D=tf.layers.Conv1D(10,kernel_size=2,strides=1,padding="SAME")#输出10个filters print(conv1D(x)) conv1D=tf.layers.Conv1D(10,kernel_size=2,strides=1) print(conv1D(x)) |
输出:
Tensor("conv1d_10/BiasAdd:0", shape=(2, 10, 10), dtype=float32)
Tensor("conv1d_11/BiasAdd:0", shape=(2, 9, 10), dtype=float32)
4.tf.layers.conv1d
tf.layers.conv1d( inputs, filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=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 ) |
参数说明:
name:层的名称。
reuse:Boolean,是否以同一名称重用前一层的权重。
其它参数同Conv1D类。
conv1D=tf.layers.conv1d(x,filters=10,kernel_size=2,strides=1,padding="SAME") print(conv1D) conv1D=tf.layers.conv1d(x,filters=10,kernel_size=2,strides=1) print(conv1D) |
输出:
Tensor("conv1d_15/BiasAdd:0", shape=(2, 10, 10), dtype=float32)
Tensor("conv1d_16/BiasAdd:0", shape=(2, 9, 10), dtype=float32)