class_docstr: An implementation of the linear layer, conducting 2D convolution.
  For details see this paper: `"Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks."
  <https://arxiv.org/pdf/2005.11650.pdf>`_
  
  Args:
      c_in (int): Number of input channels.
      c_out (int): Number of output channels.
      bias (bool, optional): Whether to have bias. Default: True.
class_docstr_tok: ["An","implementation","of","the","linear","layer",",","conducting","2D","convolution",".","For","details","see","this","paper",":","`","``","Connecting","the","Dots",":","Multivariate","Time","Series","Forecasting","with","Graph","Neural","Networks",".","''","<","https",":","\/\/arxiv.org\/pdf\/2005.11650.pdf",">","`","_","Args",":","c_in","(","int",")",":","Number","of","input","channels",".","c_out","(","int",")",":","Number","of","output","channels",".","bias","(","bool",",","optional",")",":","Whether","to","have","bias",".","Default",":","True","."]
docstr: Making a forward pass of the linear layer.
  
  Arg types:
      * **X** (Pytorch Float Tensor) - Input tensor, with shape (batch_size, c_in, num_nodes, seq_len).
  
  Return types:
      * **X** (PyTorch Float Tensor) - Output tensor, with shape (batch_size, c_out, num_nodes, seq_len).
code: def forward(self, X: torch.FloatTensor) -> torch.FloatTensor:
      """
      Making a forward pass of the linear layer.
  
      Arg types:
          * **X** (Pytorch Float Tensor) - Input tensor, with shape (batch_size, c_in, num_nodes, seq_len).
  
      Return types:
          * **X** (PyTorch Float Tensor) - Output tensor, with shape (batch_size, c_out, num_nodes, seq_len).
      """
      return self._mlp(X)
  
imports: from __future__ import division
  import numbers
  from typing import Optional
  import torch
  import torch.nn
  from torch.nn import init
  import torch.nn.functional
label_desc: Use image node_id 3 for calling the Linear obj's underlying member method code with example usage: obj.forward(X) and returns: self