【tensorflow】tf.layers.conv1d函数解析(一维卷积)

您所在的位置:网站首页 tensorflow什么语言写的 【tensorflow】tf.layers.conv1d函数解析(一维卷积)

【tensorflow】tf.layers.conv1d函数解析(一维卷积)

2023-09-15 03:41| 来源: 网络整理| 查看: 265

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_sizea : 句子中的词数或者字数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的向量 画图如下: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3