记一下,防止自己忘记了。
3D卷积和池化一般用在视频上,就是在图像的长和宽的卷积、池化的基础上加上视频帧也就是时间这一维上的卷积,具体怎么回事可以去看3D Convolutional Neural Networks for Human Action Recognition这篇论文,这里就只是记一个函数功能。
conv3d( input, filter, strides, padding, data_format='NDHWC', name=None )
input:就是输入的数据必须是float32, float64类型的. Shape 是[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有一样的形状. Shape [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:和输入参数一样的张量
max_pool3d( input, ksize, strides, padding, data_format='NDHWC', name=None )
Defined in tensorflow/python/ops/gen_nn_ops.py.
See the guide: Neural Network > Pooling
Performs 3D max pooling on the input.
参数和conv3d一样