TensorFlow函数:tf.layers.Conv1D_w3cschool https://www.w3cschool.cn/tensorflow_python/tensorflow_python-283f2t0b.html
功能
1D卷积层(例如,时间卷积).
一维卷积一般用于处理文本数据,常用语自然语言处理中
定义:
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
)
参数:
- filters:整数,输出空间的维数(即卷积中的滤波器数).
- kernel_size:单个整数的整数或元组/列表,指定1D卷积窗口的长度.
- strides:单个整数的整数或元组/列表,指定卷积的步幅.指定任何步幅(stride)值!=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:单个整数的整数或元组/列表,指定用于扩张卷积的扩张率.目前,指定任何dilation_rate值!=1与指定任何strides值!= 1 不兼容.
- activation:激活功能,将其设置为“None”以保持线性激活.
- use_bias:Boolean,该层是否使用偏差.
- kernel_initializer:卷积内核的初始化程序.
- bias_initializer:偏置向量的初始化器,如果为None,将使用默认初始值设定项.
- kernel_regularizer:卷积内核的可选正则化器.
- bias_regularizer:偏置矢量的可选正则化器.
- activity_regularizer:输出的可选正则化函数.
- kernel_constraint:由Optimizer更新后应用于内核的可选投影函数(例如,用于实现层权重的范数约束或值约束);该函数必须将未投影的变量作为输入,并且必须返回投影变量(必须具有相同的形状);在进行异步分布式培训时,使用约束是不安全的.
- bias_constraint:由Optimizer更新后应用于偏差的可选投影函数.
- trainable:Boolean,如果为True,还将变量添加到图集合
- GraphKeys.TRAINABLE_VARIABLES中(请参阅参考资料tf.Variable).
- name:字符串,图层的名称.
————————————————
版权声明:下面例子为CSDN博主「生活不只*眼前的苟且」的原创文章,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011734144/article/details/84066928
比较重要的几个参数是inputs, filters, kernel_size,下面分别说明:
- inputs : 输入tensor, 维度(None, a, b) 是一个三维的tensor
- None : 一般是填充样本的个数,batch_size
- a : 句子中的词数或者字数
- b : 字或者词的向量维度
-
filters : 过滤器的个数
-
kernel_size : 卷积核的大小,卷积核其实应该是一个二维的,这里只需要指定一维,是因为卷积核的第二维与输入的词向量维度是一致的,因为对于句子而言,卷积的移动方向只能是沿着词的方向,即只能在列维度移动
一个例子:
inputs = tf.placeholder(‘float’, shape=[None, 6, 8])
out = tf.layers.conv1d(inputs, 5, 3)
说明: 对于一个样本而言,句子长度为6个字,字向量的维度为8
filters=5, kernel_size=3, 所以卷积核的维度为3* 8
那么输入6 * 8经过3* 8的卷积核卷积后得到的是4*1的一个向量,其中(4=6-3+1)
又因为有5个过滤器,所以是得到5个4* 1的向量
画图如下: