class_docstr: Applies the element-wise function:
  
  .. math::
      \text{Swish}(x) = x * \text{Sigmoid}(\alpha * x) ~~~~\text{for constant value}~ \alpha=1.
  
  Memory efficient implementation for training following recommendation from:
  https://github.com/lukemelas/EfficientNet-PyTorch/issues/18#issuecomment-511677853
  
  Results in ~ 30% memory saving during training as compared to Swish()
  
  Citation: Searching for Activation Functions, Ramachandran et al., 2017, https://arxiv.org/abs/1710.05941.
  
  From Pytorch 1.7.0+, the optimized version of `Swish` named `SiLU` is implemented,
  this class will utilize `torch.nn.functional.silu` to do the calculation if meets the version.
  
  Shape:
      - Input: :math:`(N, *)` where `*` means, any number of additional
        dimensions
      - Output: :math:`(N, *)`, same shape as the input
  
  
  Examples::
  
      >>> import torch
      >>> from monai.networks.layers.factories import Act
      >>> m = Act['memswish']()
      >>> input = torch.randn(2)
      >>> output = m(input)
code: def forward(self, input: torch.Tensor):
      return monai_swish(input, self.inplace)
  
imports: from __future__ import annotations
  import torch
  from torch import nn
  from monai.utils import optional_import
label_desc: Use image node_id 2 for calling the MemoryEfficientSwish obj's underlying member method code with example usage: obj.forward(input) and returns: monai_swish