# W3cubDocs

/TensorFlow C++ 1.15

# tensorflow::ops::Dilation2D

`#include <nn_ops.h>`

Computes the grayscale dilation of 4-D `input` and 3-D `filter` tensors.

## Summary

The `input` tensor has shape `[batch, in_height, in_width, depth]` and the `filter` tensor has shape `[filter_height, filter_width, depth]`, i.e., each input channel is processed independently of the others with its own structuring function. The `output` tensor has shape `[batch, out_height, out_width, depth]`. The spatial dimensions of the output tensor depend on the `padding` algorithm. We currently only support the default "NHWC" `data_format`.

In detail, the grayscale morphological 2-D dilation is the max-sum correlation (for consistency with `conv2d`, we use unmirrored filters):

```output[b, y, x, c] =
max_{dy, dx} input[b,
strides[1] * y + rates[1] * dy,
strides[2] * x + rates[2] * dx,
c] +
filter[dy, dx, c]
```

Max-pooling is a special case when the filter has size equal to the pooling kernel size and contains all zeros.

Note on duality: The dilation of `input` by the `filter` is equal to the negation of the erosion of `-input` by the reflected `filter`.

Arguments:

• scope: A Scope object
• input: 4-D with shape `[batch, in_height, in_width, depth]`.
• filter: 3-D with shape `[filter_height, filter_width, depth]`.
• strides: The stride of the sliding window for each dimension of the input tensor. Must be: `[1, stride_height, stride_width, 1]`.
• rates: The input stride for atrous morphological dilation. Must be: `[1, rate_height, rate_width, 1]`.

Returns:

• `Output`: 4-D with shape `[batch, out_height, out_width, depth]`.
Constructors and Destructors
`Dilation2D(const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input filter, const gtl::ArraySlice< int > & strides, const gtl::ArraySlice< int > & rates, StringPiece padding)`
Public attributes
`operation`
`Operation`
`output`
`::tensorflow::Output`
Public functions
`node() const `
`::tensorflow::Node *`
`operator::tensorflow::Input() const `
`operator::tensorflow::Output() const `

## Public attributes

### operation

`Operation operation`

### output

`::tensorflow::Output output`

## Public functions

### Dilation2D

``` Dilation2D(
const ::tensorflow::Scope & scope,
::tensorflow::Input input,
::tensorflow::Input filter,
const gtl::ArraySlice< int > & strides,
const gtl::ArraySlice< int > & rates,
)```

### node

`::tensorflow::Node * node() const `

### operator::tensorflow::Input

`operator::tensorflow::Input() const `

### operator::tensorflow::Output

`operator::tensorflow::Output() const `