function maxPool3d_(x, filterSize, strides, pad, dimRoundingMode, dataFormat, dilations) {
	  if (filterSize === void 0) {
	    filterSize = [1, 1, 1];
	  }

	  if (dataFormat === void 0) {
	    dataFormat = 'NDHWC';
	  }

	  if (dilations == null) {
	    dilations = [1, 1, 1];
	  } else {
	    deprecationWarn('dilations is deprecated, this field will be gone in ' + 'v3.0.0.');
	  }

	  var $x = convertToTensor(x, 'x', 'maxPool3d');
	  var x5D = $x;
	  var reshapedTo5D = false;

	  if ($x.rank === 4) {
	    reshapedTo5D = true;
	    x5D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
	  }

	  assert(x5D.rank === 5, function () {
	    return "Error in maxPool3d: x must be rank 5 but got rank " + x5D.rank + ".";
	  });
	  assert(dataFormat === 'NDHWC', function () {
	    return "Error in maxPool3d: Only NDHWC is currently supported, " + ("but got dataFormat of " + dataFormat);
	  });
	  assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
	    return 'Error in maxPool3d: Either strides or dilations must be 1. ' + ("Got strides " + strides + " and dilations '" + dilations + "'");
	  });

	  if (dimRoundingMode != null) {
	    assert(isInt(pad), function () {
	      return "Error in maxPool3d: pad must be an integer when using, " + ("dimRoundingMode " + dimRoundingMode + " but got pad " + pad + ".");
	    });
	  }

	  var inputs = {
	    x: x5D
	  };
	  var attrs = {
	    filterSize: filterSize,
	    strides: strides,
	    pad: pad,
	    dimRoundingMode: dimRoundingMode,
	    dataFormat: dataFormat,
	    dilations: dilations
	  }; // tslint:disable-next-line: no-unnecessary-type-assertion

	  var res = ENGINE.runKernel(MaxPool3D, inputs, attrs);

	  if (reshapedTo5D) {
	    return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
	  }

	  return res;
	}
Computes the 3D max pooling.

```js
const x = tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]);
const result = tf.maxPool3d(x, 2, 1, 'valid');
result.print();
```

@param x The input tensor, of rank 5 or rank 4 of shape
    `[batch, depth, height, width, inChannels]`.
@param filterSize The filter size:
    `[filterDepth, filterHeight, filterWidth]`.
    If `filterSize` is a single number,
    then `filterDepth == filterHeight == filterWidth`.
@param strides The strides of the pooling:
    `[strideDepth, strideHeight, strideWidth]`.
    If `strides` is a single number,
    then `strideDepth == strideHeight == strideWidth`.
@param pad The type of padding algorithm.
   - `same` and stride 1: output will be of same size as input,
      regardless of filter size.
   - `valid`: output will be smaller than input if filter is larger
      than 1*1x1.
   - For more info, see this guide:
    [https://www.tensorflow.org/api_guides/python/nn#Convolution](
         https://www.tensorflow.org/api_guides/python/nn#Convolution)
@param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
    provided, it will default to truncate.
@param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
    "NDHWC". Specify the data format of the input and output data. With the
    default format "NDHWC", the data is stored in the order of: [batch,
    depth, height, width, channels]. Only "NDHWC" is currently supported.
@param dilations Deprecated, this field will be gone in v3.0.0.
    The dilation rates: `[dilationDepth, dilationHeight, dilationWidth]`
    in which we sample input values across the depth, height and width
    dimensions in dilated pooling.
    Defaults to `[1, 1, 1]`. If `dilations` is a single number,
    then `dilationDepth == dilationHeight == dilationWidth`.
    If it is greater than 1, then all values of `strides` must be 1.

@doc {heading: 'Operations', subheading: 'Convolution'}