class_docstr: The :class:`Conv3dLayer` class is a 3D CNN layer, see `tf.nn.conv3d <https://tensorflow.google.cn/versions/r2.0/api_docs/python/tf/nn/conv3d>`__.
  
  Parameters
  ----------
  act : activation function
      The activation function of this layer.
  shape : tuple of int
      Shape of the filters: (filter_depth, filter_height, filter_width, in_channels, out_channels).
  strides : tuple of int
      The sliding window strides for corresponding input dimensions.
      Must be in the same order as the shape dimension.
  padding : str
      The padding algorithm type: "SAME" or "VALID".
  data_format : str
      "NDHWC" or "NCDHW", default is "NDHWC".
  dilation_rate : tuple of int
      Filter up-sampling/input down-sampling rate.
  W_init : initializer
      The initializer for the weight matrix.
  b_init : initializer or None
      The initializer for the bias vector. If None, skip biases.
  name : None or str
      A unique layer name.
  
  Notes
  -----
  - shape = [d, h, w, the number of output channel of previous layer, the number of output channels]
  - the number of output channel of a layer is its last dimension.
  
  Examples
  --------
  With TensorLayer
  
  >>> net = tl.layers.Input([8, 100, 100, 100, 3], name='input')
  >>> conv3d = tl.layers.Conv3dLayer(shape=(2, 2, 2, 3, 32), strides=(1, 2, 2, 2, 1), b_init=None, name='conv3d_1')
  >>> print(conv3d)
  >>> tensor = tl.layers.Conv3dLayer(shape=(2, 2, 2, 3, 32), strides=(1, 2, 2, 2, 1), act=tf.nn.relu, name='conv3d_2')(net)
  >>> print(tensor)
code: def __init__(
      self,
      act=None,
      shape=(2, 2, 2, 3, 32),
      strides=(1, 2, 2, 2, 1),
      padding="SAME",
      data_format="NDHWC",
      dilation_rate=(1, 1, 1, 1, 1),
      W_init=tl.initializers.truncated_normal(stddev=0.02),
      b_init=tl.initializers.constant(value=0.0),
      name=None,  # 'cnn3d_layer'
  ):
      super().__init__(name, act=act)
      self.n_filter = shape[-1]
      self.filter_size = (shape[0], shape[1], shape[2])
      self.shape = shape
      self.strides = strides
      self.padding = padding
      self.data_format = data_format
      self.dilation_rate = dilation_rate
      self.W_init = W_init
      self.b_init = b_init
      self.in_channels = shape[-2]
  
      self.build(None)
      self._built = True
  
      logging.info(
          "Conv3dLayer %s: shape: %s strides: %s pad: %s act: %s"
          % (
              self.name,
              str(shape),
              str(strides),
              padding,
              self.act.__name__
              if self.act is not None
              else "No Activation",
          )
      )
  
imports: import tensorflow
  import tensorlayer
  from tensorlayer import logging
  from tensorlayer.decorators import deprecated_alias
  from tensorlayer.layers.core import Layer
label_desc: Use image node_id 1 to create a new Conv3dLayer object from inherited base classes: Layer with example: obj = Conv3dLayer(act, shape, strides, padding, data_format, dilation_rate, W_init, b_init, name)