class_docstr: Contrastive learning method proposed in the paper `InfoGraph: Unsupervised and 
  Semi-supervised Graph-Level Representation Learning via Mutual Information 
  Maximization <https://arxiv.org/abs/1908.01000>`_. You can refer to `the benchmark code 
  <https://github.com/divelab/DIG/blob/dig/benchmarks/sslgraph/example_infograph.ipynb>`_ 
  for an example of usage.
  
  *Alias*: :obj:`dig.sslgraph.method.contrastive.model.`:obj:`InfoGraph`.
  
  Args:
      g_dim (int): The embedding dimension for graph-level (global) representations.
      n_dim (int): The embedding dimension for node-level (local) representations. Typically,
          when jumping knowledge is included in the encoder, we have 
          :obj:`g_dim` = :obj:`n_layers` * :obj:`n_dim`.
      **kwargs (optinal): Additional arguments of :class:`dig.sslgraph.method.Contrastive`.
code: def __init__(self, g_dim, n_dim, **kwargs):
      views_fn = [lambda x: x]
      proj = ProjHead(g_dim, n_dim)
      proj_n = ProjHead(n_dim, n_dim)
      super(InfoGraph, self).__init__(
          objective="JSE",
          views_fn=views_fn,
          node_level=True,
          z_dim=g_dim,
          z_n_dim=n_dim,
          proj=proj,
          proj_n=proj_n,
          **kwargs,
      )
  
file_path: DIG/dig/sslgraph/method/contrastive/model/infograph.py
imports: import torch.nn
  from .contrastive import Contrastive
label_desc: Use image node_id 1 to create a new InfoGraph object from inherited base classes: Contrastive with example: obj = InfoGraph(g_dim, n_dim)