TensorFlow函数:tf.nn.conv2d
2019-01-31 13:43 更新
tf.nn.conv2d函数
tf.nn.conv2d(
input,
filter,
strides,
padding,
use_cudnn_on_gpu=True,
data_format='NHWC',
dilations=[1, 1, 1, 1],
name=None
)
定义在:tensorflow/python/ops/gen_nn_ops.py.
请参阅指南:神经网络>卷积运算
计算给定的4-D input和filter张量的2-D卷积.
给定形状为[batch, in_height, in_width, in_channels]的输入张量和形状为[filter_height, filter_width, in_channels, out_channels]的滤波器/内核张量,此操作执行以下操作:
- 将滤镜展平为具有形状[filter_height * filter_width * in_channels, output_channels]的二维矩阵.
- 从输入张量中提取图像补丁,以形成形状为[batch, out_height, out_width, filter_height * filter_width * in_channels]的虚拟张量.
- 对于每个补丁,右对乘滤波器矩阵和图像补丁矢量.
详细说明,使用默认的NHWC格式,
output[b, i, j, k] =
sum_{di, dj, q} input[b, strides[1] * i + di, strides[2] * j + dj, q] *
filter[di, dj, q, k]
必须有strides[0] = strides[3] = 1.对于相同水平和顶点步幅的最常见情况,strides = [1, stride, stride, 1].
参数:
- input:一个Tensor,必须是下列类型之一:half,bfloat16,float32,float64;一个4-D张量,维度顺序根据data_format值进行解释,详见下文.
- filter:一个Tensor,必须与input相同,形状为[filter_height, filter_width, in_channels, out_channels]的4-D张量.
- strides:ints列表,长度为4的1-D张量,input的每个维度的滑动窗口的步幅;维度顺序由data_format值确定,详见下文.
- padding:string,可以是:"SAME", "VALID",要使用的填充算法的类型.
- use_cudnn_on_gpu:bool,默认为True.
- data_format:string,可以是"NHWC", "NCHW",默认为"NHWC";指定输入和输出数据的数据格式;使用默认格式“NHWC”,数据按以下顺序存储:[batch, height, width, channels];或者,格式可以是“NCHW”,数据存储顺序为:[batch, channels, height, width].
- dilations:ints的可选列表,默认为[1, 1, 1, 1],长度为4的1-D张量,input的每个维度的扩张系数;如果设置为k> 1,则该维度上的每个滤镜元素之间将有k-1个跳过的单元格;维度顺序由data_format值确定,详见上文;批次和深度尺寸的扩张必须为1.
- name:操作的名称(可选).
返回:
一个Tensor,与input具有相同的类型.