tf.nn.conv3d和tf.nn.max_pool3d這兩個tensorflow函式的功能和引數
阿新 • • 發佈:2019-01-09
記一下,防止自己忘記了。
3D卷積和池化一般用在視訊上,就是在影象的長和寬的卷積、池化的基礎上加上視訊幀也就是時間這一維上的卷積,具體怎麼回事可以去看3D Convolutional Neural Networks for Human Action Recognition這篇論文,這裡就只是記一個函式功能。
tf.nn.conv3d
conv3d(
input,
filter,
strides,
padding,
data_format='NDHWC',
name=None
)
input:就是輸入的資料必須是float32
, float64型別的
[batch, in_depth, in_height, in_width, in_channels]
batch:是每次輸入的視訊樣本數,批次訓練比較有用,其他時候都是1;
in_depth:每個視訊樣本有多少幀;
in_height,in_width:視訊每個幀的長和寬,類似影象的解析度,不知道的可以在電腦上右擊圖片屬性查詳細資訊;
in_channels:就是指輸入的視訊的通道數,一般模型第一層初次輸入取決於視訊型別,flow就是2,RGB就是3,中間層取決於上一層的輸出通道數。
懶得翻了,寫完再改
filter
: 是一個張量,必須和input有一樣的形狀
[filter_depth, filter_height, filter_width, in_channels, out_channels]
.in_channels
.strides
: 長度>= 5的整數數列列
.是長度為5的一維張量。是輸入張量每一維的滑動視窗跨度大小.strides[0] = strides[4] = 1
.padding
:引數有"SAME", "VALID",代表不同的填充演算法
.data_format
: 代表的是輸入資料和輸出資料每一維度指代的引數,有"NDHWC", "NCDHW",預設值是
"NDHWC"
. 比如, "NDHWC", 資料儲存的順序是 [batch, in_depth, in_height, in_width, in_channels]; "NCDHW",則是 [batch, in_channels, in_depth, in_height, in_width].name
: 操作代表的名字(可選)
Returns:和輸入引數一樣的張量
f.nn.max_pool3d
max_pool3d(
input,
ksize,
strides,
padding,
data_format='NDHWC',
name=None
)
Defined in tensorflow/python/ops/gen_nn_ops.py
.
Performs 3D max pooling on the input.
引數和conv3d一樣