tf.nn.conv1d


一、conv1d
  在NLP領域,甚至圖像處理的時候,我們可能會用到一維卷積(conv1d)。所謂的一維卷積可以看作是二維卷積(conv2d)的簡化,二維卷積是將一個特征圖在width和height兩個方向上進行滑窗操作,對應位置進行相乘並求和;而一維卷積則是只在width或者說height方向上進行滑窗並相乘求和。

tensorflow中的conv1d和conv2d的區別:conv1d是單通道的,conv2d是多通道,所以conv1d適合處理文本序列,conv2d適合處理圖像

二、詳解
  conv1d的參數含義:(以NHWC格式為例,即,通道維在最后)

1、value:在注釋中,value的格式為:[batch, in_width, in_channels],batch為樣本維,表示多少個樣本,in_width為寬度維,表示樣本的寬度,in_channels維通道維,表示樣本有多少個通道。
  事實上,也可以把格式看作如下:[batch, 行數, 列數],把每一個樣本看作一個平鋪開的二維數組。這樣的話可以方便理解。

2、filters:在注釋中,filters的格式為:[filter_width, in_channels, out_channels]。按照value的第二種看法,filter_width可以看作每次與value進行卷積的行數,in_channels表示value一共有多少列(與value中的in_channels相對應)。out_channels表示輸出通道,可以理解為一共有多少個卷積核,即卷積核的數目。

3、stride:一個整數,表示步長,每次(向下)移動的距離(TensorFlow中解釋是向右移動的距離,這里可以看作向下移動的距離)。

4、padding:同conv2d,value是否需要在下方填補0。

5、name:名稱。可省略。

# tensorflow2.1.0+win10
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
import numpy as np

# 定義一個矩陣a,表示需要被卷積的矩陣。[batch, 行數, 列數],把每一個樣本看作一個平鋪開的二維數組。
# 在注釋中,value的格式為:[batch, in_width, in_channels],batch為樣本維,表示多少個樣本,in_width為寬度維,表示樣本的寬度,in_channels維通道維,表示樣本有多少個通道。
# 事實上,也可以把格式看作如下:[batch, 行數, 列數],把每一個樣本看作一個平鋪開的二維數組。這樣的話可以方便理解。
a = np.array(np.arange(1, 1 + 20).reshape([1, 10, 2]), dtype=np.float32)

# 卷積核,此處卷積核的數目為1,filters:在注釋中,filters的格式為:[filter_width, in_channels, out_channels]。
# 按照value的第二種看法,filter_width可以看作每次與value進行卷積的行數,in_channels表示value一共有多少列(與value中的in_channels相對應)。
# out_channels表示輸出通道,可以理解為一共有多少個卷積核,即卷積核的數目。
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:
    # 初始化
    sess.run(tf.global_variables_initializer())
    print(sess.run(conv1d))

 輸出:

 

 

卷積層輸出維度計算:

outlength = 向上取整((inlength-filterlength+1)/ stridelength

 10-2+1/1=9,卷積的輸出維度是9

 

參考:

https://blog.csdn.net/u013337743/article/details/87923618

https://blog.csdn.net/DaVinciL/article/details/81359245


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM