Tensorflow函数:tf.nn.conv1d()

一. 函数的作用

该函数的主要作用是实现一维卷积(conv1d)操作。所谓的一维卷积可以理解为是二维卷积(conv2d)在某一维度上简化,传统的二维卷积是用卷积核在特征图像的width和height两个方向上按一定的stride进行滑窗卷积操作,而一维卷积则可以看成是二维卷积在width或者height方向上的简化。

二. 函数的参数说明

1. 函数的整体结构如下:

 tf.nn.conv1d(value, filters, stride, padding, use_caduu_on_gpu, data_format, name, input, dilations)

2. 函数中各个参数解释如下:

  • value: 表示输入的样本(特征),其格式的确定可以分为以下两种情况:

        若data_format为‘NWC’,则其格式为:[batch, in_width, in_channels],batch表示批量样本(特征)数,in_width表示样本(特征)的维度,in_channels表示样本(特征)的通道数;

        若data_format为‘NCW’,则其格式为:[batch, in_channels, in_width],batch表示批量样本(特征)数,in_channels表示样本(特征)的通道数,in_width表示样本(特征)的维度。

  • filters: 表示卷积核,其格式为:[filter_width, in_channels, out_channels],filter_width表示卷积核的大小,in_channels表示样本(特征)的通道数,out_channels表示卷积之后的通道数。
  • stride: 表示在卷积过程中卷积核每移动的步长,通常为一个int型的整数或长度为3的列表,如:[1,2,1]。
  • padding: 表示是否在卷积过程中对输入的样本(特征)进行补0操作。
  • use_caduu_on_gpu: 一个布尔型变量,默认为‘True’。
  • data_format: 表示数据格式的标识符,通常取‘NWC’或者‘NCW’二者之一,默认为为前者。
  • name: 定义该操作的名称。
  • input: Alias for value,一般不考虑。
  • dilations: 表示卷积的膨胀因子,一般为一个int型的整数或长度为3的列表,默认值为1。如果设定值>1,则认为该维度上每个过滤器元素之间将有k-1个位置跳过。

注意:若dilations参数采用长度为3的int列表表示,则批次尺寸和深度尺寸的膨胀必须为1!

三. 函数的使用

1. 未采用膨胀卷积时的情况

#*******************************导入相关模块***********************************#
import tensorflow as tf
import numpy as np

#*******************************计算图声明*************************************#
#--------------------定义一个指定的、维度为[2,7,1]的输入
X = np.array( [[1,2,3,4,3,2,1],[1,1,1,3,2,2,2]], dtype=float).reshape([2,7,1])
#--------------------定义一个核为[1,2]、维度为[2,1,1]的卷积核
W = np.array([1,2], dtype=float).reshape( [2,1,1] )
#--------------------进行一维卷积
Y = tf.nn.conv1d( X, W, stride=1, padding='VALID', dilations=1 )            #未采用膨胀

#*******************************创建会话*************************************#
with tf.Session() as sess:
    Y = sess.run(Y)


#--------------------模型的输出
[[5., 8., 11., 10., 7., 4],
[3., 3., 7., 7., 6., 6]]

2. 采用膨胀卷积时的情况(空洞数为2,即dilations=3)

#*******************************导入相关模块***********************************#
import tensorflow as tf
import numpy as np

#*******************************计算图声明*************************************#
#--------------------定义一个指定的、维度为[2,7,1]的输入
X = np.array( [[1,2,3,4,3,2,1],[1,1,1,3,2,2,2]], dtype=float).reshape([2,7,1])
#--------------------定义一个核为[1,2]、维度为[2,1,1]的卷积核
W = np.array([1,2], dtype=float).reshape( [2,1,1] )
#--------------------进行一维卷积
Y = tf.nn.conv1d( X, W, stride=1, padding='VALID', dilations=3 )            #未采用膨胀

#*******************************创建会话*************************************#
with tf.Session() as sess:
    Y = sess.run(Y)


#--------------------模型的输出
[[9., 8., 7., 6],
[7., 5., 5., 7]]

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值