TensorFlow函数:tf.nn.conv2d

由 Carrie 创建, 最后一次修改 2018-12-07

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]的滤波器/内核张量,此操作执行以下操作:

  1. 将滤镜展平为具有形状[filter_height * filter_width * in_channels, output_channels]的二维矩阵.
  2. 从输入张量中提取图像补丁,以形成形状为[batch, out_height, out_width, filter_height * filter_width * in_channels]的虚拟张量.
  3. 对于每个补丁,右对乘滤波器矩阵和图像补丁矢量.

详细说明,使用默认的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具有相同的类型.

以上内容是否对您有帮助:

二维码
建议反馈
二维码