1 作用
对一维数据进行卷积。一维卷积(conv1d)可以看作是二维卷积(conv2d)的简化。 二维卷积是将一个特征图在width和height两个方向上进行卷积操作,而一维卷积则只是在width或者说height一个方向上进行卷积。
2 参数解析 output = tf.nn.conv1d(value, filters, stride, padding)value:要卷积的张量,形状是【batch, in_width, in_channels】,说白了就是[batch, 行数, 列数] ----batch 表示多少个样本 ----表示样本的宽度 ----in_channels 表示样本有多少个通道
filter :卷积的参数,形状是[filter_width, in_channels, out_channels] ----filter_width 表示与 value 进行卷积的(行数/每次) ----in_channels 表示 value 一共有多少列 = value 中的 in_channels ----out_channels 表示卷积核数目
stride :是卷积的步长
padding: ‘SAME’ 或者‘VALID表示是否边缘填充
3 举例使用import tensorflow as tf
import numpy as np
# 定义一个矩阵a,表示需要被卷积的矩阵。
a = np.array(np.arange(1, 1 + 20).reshape([1, 10, 2]), dtype=np.float32)
# 卷积核,此处卷积核的数目为1
kernel = np.array(np.arange(1, 1 + 4), dtype=np.float32).reshape([2, 2, 1])
# 进行conv1d卷积
conv1d = tf.nn.conv1d(a, kernel, 1, 'VALID')
with tf.Session() as sess:
# 初始化
tf.global_variables_initializer().run()
# 输出卷积值
print(sess.run(conv1d))
输出 [[[ 30.] [ 50.] [ 70.] [ 90.] [110.] [130.] [150.] [170.] [190.]]]