tensorflow conv1d的理解和实现
tensorflow
一个面向所有人的开源机器学习框架
项目地址:https://gitcode.com/gh_mirrors/te/tensorflow
免费下载资源
·
在自然语言处理(NLP)领域,甚至图像处理的时候,我们可能会用到一维卷积(conv1d).以为卷积可以看作是二维卷积(conv2d)的简化,二维卷积是将一个特征图在width和height两个方向上进行滑动窗操作,对应位置进行相乘求和;而一维卷积则只是在width或者说height方向上进行滑动窗口并相乘求和
# tensorflow中的 conv1d 和conv2d 的区别:conv1d是单通道的,conv2d是多通道,
# conv1d适合处理文本序列,conv2d适合处理图像。
# tf.nn.conv1d(value, filters, stride, padding)
# value 的形状:[batch, in_width, in_channels]
#
# batch 表示多少个样本
# in_width 表示样本的宽度
# in_channels 表示样本有多少个通道
# 可看作一个平铺开的二维数组:[batch, 行数, 列数];
#
# filter 的形状:[filter_width, in_channels, out_channels]
#
# filter_width 表示与 value 进行卷积的行数/每次
# in_channels 表示 value 一共有多少列 = value 中的 in_channels
# out_channels 表示卷积核数目
#
# stride :步长
# output 的形状:[batch, out_width, out_channels]
def my_conv1d_column(input_v, weight, bias, step_size=1):
dims_v = input_v.shape
if len(dims_v) == 2:
input_v = tf.expand_dims(input_v, 0) # 0表示第一维
dims_w = weight.shape
if len(dims_w) == 2:
weight = tf.expand_dims(weight, 0) # 0表示第一维
conv_result = tf.nn.conv1d(input_v, weight, step_size, 'VALID')
dims_b = bias.shape
if len(dims_b) == 2:
bias = tf.expand_dims(bias, 0) # 0表示第一维
conv_result = tf.add(conv_result, bias)
return conv_result
GitHub 加速计划 / te / tensorflow
184.56 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:3 个月前 )
a49e66f2
PiperOrigin-RevId: 663726708
3 个月前
91dac11a
This test overrides disabled_backends, dropping the default
value in the process.
PiperOrigin-RevId: 663711155
3 个月前
更多推荐
已为社区贡献5条内容
所有评论(0)