卷積層引數解釋
tf.nn.conv2d(input,filter, strides, padding, use_cudnn_on_gpu=bool, data_format
,name=none)
input
:指定需要做卷積的輸入影象,輸入要求為乙個4維的
tensor
,要求輸入型別為
float32
或者float64
。輸入的
shape
為[batch, in_height, in_width, in_channels]
,分別表示:訓練時乙個
batch
的數量,的高度,的寬度,的通道數
filter
:卷積核,輸入要求為乙個4維的
tensor
,輸入的
shape
為[filter_height,filter_width, in_channels, out_channels]
,分別表示:卷積核的高度,卷積核的寬度,影象通道數,卷積核個數
strides
:決定卷積的視窗在影象上每乙個維度上的步長,為一維向量,要求輸入型別為
int,其中典型的設定為
strides[0]=strides[3]=1
(在data_format
為預設值時,如果
data_format
有改變需要根據
data_format
的順序決定
strides
的向量的順序)
strides[0]
表示batch
,strides[3]
表示卷積核的深度,因為需要遍歷資料中所有的
batch
,所以設定為1當
strides[0]=strides[3]=-1
時,表示讓**自動根據輸入的
batch size
來調整,這樣設定的好處是不需要人手動調整引數
例如:乙個灰度影象為
32*32
大小,則輸入矩陣為
00 01 02 03 04 ...
10 11 12 13 14 ...
20 21 22 23 24 ...
3031 32 33 34 ..
假設卷積視窗的步長在每乙個維度上都為1,即
strides= [1,1,1,1]
,並且padding=」same」
那麼輸出為:
f(00 01
10 11)
接著f(01 02
11 12)……
接著第二行
f(10, 11
20, 21) ……
如果卷積視窗的步長在每乙個維度上都為2,即
strides= [1,2,2,1]
,並且padding=」same」
那麼輸出為
f(00, 01
10, 11)
接著f(02, 03
padding
:可選「
same
」和「valid
」,決定不同的卷積方式
same
:採用補全的方式,補
0 , valid:採用丟棄方式
假設輸入矩陣為
w*w,卷積核為
f*f,步長為
s輸出為
new_w
經過valid
的方式卷積:
new_w = (w-f+1) / s
結果向上取整
經過same
的方式卷積:
new_w = w / s
結果向上取整
則需要pad
的畫素數為:
need_padding_pixel = (new_w – 1) * s + f –w
於是在矩陣
w*w的左邊或者上方新增畫素為:
new_padding_left = new_padding_top = need_padding_pixel/ 2
結果向上取整
use_cudnn_on_gpu=bool
:是否使用
cudnn
加速,預設為
true
data_format
:可選
"nhwc","nchw"
,預設為
"nhwc"
。指定輸入和輸出資料的格式,預設值表示
data
將被儲存為
[batch, height, width, channels]
的順序。
"nchw"
表示data
將被儲存為
[batch,channels, height, width]
的順序。
結果返回乙個
tensor
,即feature map
參考文件:
tensorflow 1 0 學習 卷積層
在tf1.0中,對卷積層重新進行了封裝,比原來版本的卷積層有了很大的簡化。一 舊版本 1.0以下 的卷積函式 tf.nn.conv2d conv2d input,filter,strides,padding,use cudnn on gpu none,data format none,name no...
Tensorflow2 0之卷積層實現
在 tensorflow 中,通過tf.nn.conv2d 函式可以方便地實現2d 卷積運算。tf.nn.conv2d基於輸入?和卷積核?進行卷積運算,得到輸出?其中?表示輸入通道數,表示卷積核的數量,也是輸出特徵圖的通道數。例如 in 1 x tf.random.normal 2 5,5 3 模擬...
TensorFlow實戰系列11 卷積層網路結構
圖 4 中顯示了卷積層神經網路結構中最重要的部分,這個部分被稱之為過濾器 filter 或者核心 kernel 因為 tensorflow 文件中將這個結構稱之為過濾器 filter 所以我們將統稱這個結構為過濾器。如圖 4 所示,過濾器可以將當前層神經網路上的乙個子節點 矩陣轉化為下一層神經網路上...