class_docstr: MNIST decoder used in the Counterfactual with Reinforcement Learning experiments. The model consists of a fully
  connected layer of 128 units with ReLU activation followed by a convolutional block. The convolutional block
  consists fo 4 convolutional layers having 8, 8, 8  and 1 channels and a kernel size of 3. Each convolutional layer,
  except the last one, has ReLU nonlinearities and is followed by an up-sampling layer of size 2. The final layers
  uses a sigmoid activation to clip the output values in [0, 1].
docstr: Forward pass.
  
  Parameters
  ----------
  x
      Input tensor
  **kwargs
      Other arguments. Not used.
  
  Returns
  -------
  Decoded input having each component in the interval [0, 1].
docstr_tok: ["Forward","pass",".","Parameters","--","--","--","--","--","x","Input","tensor","*","*","kwargs","Other","arguments",".","Not","used",".","Returns","--","--","--","-","Decoded","input","having","each","component","in","the","interval","[","0",",","1","]","."]
code: def call(self, x: tf.Tensor, **kwargs) -> tf.Tensor:
      """
      Forward pass.
  
      Parameters
      ----------
      x
          Input tensor
      **kwargs
          Other arguments. Not used.
  
      Returns
      -------
      Decoded input having each component in the interval [0, 1].
      """
      x = self.reshape(self.fc1(x))
      x = self.up1(self.conv1(x))
      x = self.up2(self.conv2(x))
      x = self.up3(self.conv3(x))
      x = self.conv4(x)
      return x
  
imports: import tensorflow
  import tensorflow.keras
  from typing import List
label_desc: Use image node_id 2 for calling the MNISTDecoder obj's underlying member method code with example usage: obj.call(x) and returns: x