class_docstr: Returns a convolution dense block for the encoding (down) part of a layer of the network.
  This Encoder block downpools the data with max_pool.
  Its output is used as input to the next layer down.
  New feature: it returns the indices of the max_pool to the decoder (up) path
  at the same layer to upsample the input.
  
  Args:
      in_channels: number of input channels.
      max_pool: predefined max_pool layer to downsample the data.
      se_layer: Squeeze and Excite block to be included, defaults to None.
      dropout: Dropout block to be included, defaults to None.
      kernel_size : kernel size of the convolutional layers. Defaults to 5*5
      num_filters : number of input channels to each convolution block. Defaults to 64
class_docstr_tok: ["Returns","a","convolution","dense","block","for","the","encoding","(","down",")","part","of","a","layer","of","the","network",".","This","Encoder","block","downpools","the","data","with","max_pool",".","Its","output","is","used","as","input","to","the","next","layer","down",".","New","feature",":","it","returns","the","indices","of","the","max_pool","to","the","decoder","(","up",")","path","at","the","same","layer","to","upsample","the","input",".","Args",":","in_channels",":","number","of","input","channels",".","max_pool",":","predefined","max_pool","layer","to","downsample","the","data",".","se_layer",":","Squeeze","and","Excite","block","to","be","included",",","defaults","to","None",".","dropout",":","Dropout","block","to","be","included",",","defaults","to","None",".","kernel_size",":","kernel","size","of","the","convolutional","layers",".","Defaults","to","5","*","5","num_filters",":","number","of","input","channels","to","each","convolution","block",".","Defaults","to","64"]
code: def forward(self, input, indices=None):
      input, indices = self.max_pool(input)
  
      out_block, _ = super().forward(input, None)
      # safe the indices for unpool on decoder side
      return out_block, indices
  
imports: from __future__ import annotations
  from typing import Optional, Sequence, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from monai.networks.blocks import ConvDenseBlock, Convolution
  from monai.networks.blocks import squeeze_and_excitation
  from monai.networks.layers.factories import Act, Norm
  from monai.networks.layers.simplelayers import SkipConnection
  from monai.networks.layers.utils import get_dropout_layer, get_pool_layer
  from monai.utils import optional_import
label_desc: Use image node_id 2 for calling the Encoder obj's underlying member method code with example usage: obj.forward(input, indices) and returns: out_block,  indices