class_docstr: Wrapper around pytorch's convolutional layer.
  We only add the bias to the zeroth element of the zonotope
class_docstr_tok: ["Wrapper","around","pytorch","'s","convolutional","layer",".","We","only","add","the","bias","to","the","zeroth","element","of","the","zonotope"]
docstr: Concrete forward pass through the convolutional layer
  
  :param x: concrete input to the convolutional layer.
  :return: concrete convolutional layer outputs.
docstr_tok: ["Concrete","forward","pass","through","the","convolutional","layer",":","param","x",":","concrete","input","to","the","convolutional","layer",".",":","return",":","concrete","convolutional","layer","outputs","."]
code: def concrete_forward(self, x: "torch.Tensor") -> "torch.Tensor":
      """
      Concrete forward pass through the convolutional layer
  
      :param x: concrete input to the convolutional layer.
      :return: concrete convolutional layer outputs.
      """
      x = self.conv(x)
      bias = torch.unsqueeze(self.bias, dim=-1)
      bias = torch.unsqueeze(bias, dim=-1)
      bias = torch.unsqueeze(bias, dim=0)
      return x + bias
  
imports: from typing import Tuple, Union
  import numpy
  import torch
label_desc: Use image node_id 4 for calling the ZonoConv obj's underlying member method code with example usage: obj.concrete_forward(x) and returns: unknown