阅读(5.8k) 书签 (0)

TensorFlow函数教程:tf.nn.erosion2d

2019-01-31 13:47 更新

tf.nn.erosion2d函数

tf.nn.erosion2d(
    value,
    kernel,
    strides,
    rates,
    padding,
    name=None
)

定义在:tensorflow/python/ops/nn_ops.py

请参阅指南:神经网络>形态学滤波

计算4-D value和3-D kernel张量的灰度腐蚀.

value张量具有shape [batch, in_height, in_width, depth],并且kernel张量具有shape [kernel_height, kernel_width, depth],即,每个输入通道都独立于其他输入通道(具有自己的结构功能)进行处理.该output张量具有shape [batch, out_height, out_width, depth].输出张量的空间维度取决于padding算法.我们目前只支持默认的“NHWC” data_format.

详细地说,灰度形态2-D腐蚀由下列式子给出:

output[b, y, x, c] =
   min_{dy, dx} value[b,
                      strides[1] * y - rates[1] * dy,
                      strides[2] * x - rates[2] * dx,
                      c] -
                kernel[dy, dx, c]

对偶性:kernel对value的侵蚀等于反射kernel对-value的扩张的否定.

参数:

  • value:一个Tensor,是4-D的,具有shape [batch, in_height, in_width, depth].
  • kernel:一个Tensor,必须与value具有相同类型,是3-D的,具有shape [kernel_height, kernel_width, depth].
  • strides:ints列表,长度>= 4.1-D的,长度为4.输入张量的每个维度的滑动窗口的步幅.必须是:[1, stride_height, stride_width, 1].
  • rates:ints列表,长度>= 4.1-D的,长度为4.输入步幅为atrous形态扩张.必须是:[1, rate_height, rate_width, 1].
  • padding:string,可以是:"SAME", "VALID".要使用的填充算法的类型.
  • name:操作的名称(可选).如果未指定,则使用“erosion2d”.

返回:

该函数返回一个Tensor.与value具有相同的类型.4-D的,具有shape [batch, out_height, out_width, depth].

可能引发的异常:

  • ValueError:如果value深度与kernel的shape不匹配,或者填充不是'VALID'或者'SAME'.