class_docstr: Graph & high-dimensional data visualization.
  
  Given a graph or high-dimensional vectors, it maps each node to 2D or 3D coordinates to
  faciliate visualization. The learned coordinates preserve most local similarity information
  of the original input, and may shed some light on the structure of the graph or the
  high-dimensional space.
  
  Supported Models:
      - LargeVis (`Visualizing Large-scale and High-dimensional Data`_)
  
  .. _Visualizing Large-scale and High-dimensional Data: https://arxiv.org/pdf/1602.00370.pdf
  
  Parameters:
      dim (int): dimension of embeddings
      gpus (list of int, optional): GPU ids, default is all GPUs
      cpu_per_gpu (int, optional): number of CPU threads per GPU, default is all CPUs
      float_type (dtype, optional): type of parameters
      index_type (dtype, optional): type of graph indexes
  
  See also:
      :class:`Graph <graphvite.graph.Graph>`,
      :class:`KNNGraph <graphvite.graph.KNNGraph>`,
      :class:`VisualizationSolver <graphvite.solver.VisualizationSolver>`
class_docstr_tok: ["Graph","&","high-dimensional","data","visualization",".","Given","a","graph","or","high-dimensional","vectors",",","it","maps","each","node","to","2D","or","3D","coordinates","to","faciliate","visualization",".","The","learned","coordinates","preserve","most","local","similarity","information","of","the","original","input",",","and","may","shed","some","light","on","the","structure","of","the","graph","or","the","high-dimensional","space",".","Supported","Models",":","-","LargeVis","(","`","Visualizing","Large-scale","and","High-dimensional","Data","`","_",")","..","_Visualizing","Large-scale","and","High-dimensional","Data",":","https",":","\/\/arxiv.org\/pdf\/1602.00370.pdf","Parameters",":","dim","(","int",")",":","dimension","of","embeddings","gpus","(","list","of","int",",","optional",")",":","GPU","ids",",","default","is","all","GPUs","cpu_per_gpu","(","int",",","optional",")",":","number","of","CPU","threads","per","GPU",",","default","is","all","CPUs","float_type","(","dtype",",","optional",")",":","type","of","parameters","index_type","(","dtype",",","optional",")",":","type","of","graph","indexes","See","also",":",":","class",":","`","Graph","<","graphvite.graph.Graph",">","`",",",":","class",":","`","KNNGraph","<","graphvite.graph.KNNGraph",">","`",",",":","class",":","`","VisualizationSolver","<","graphvite.solver.VisualizationSolver",">","`"]
code: def get_graph(self, **kwargs):
      if "file_name" in kwargs or "edge_list" in kwargs:
          return graph.Graph(self.index_type)
      else:
          return graph.KNNGraph(
              self.index_type, self.gpus, self.cpu_per_gpu
          )
  
imports: from __future__ import print_function, absolute_import, unicode_literals, division
  import os
  import re
  import pickle
  import logging
  import multiprocessing
  from collections import defaultdict
  from future.builtins import str, map, range
  from easydict import EasyDict
  import numpy
  from ..None import lib, cfg, auto
  from ..None import graph, solver
  from ..util import assert_in, monitor, SharedNDArray
label_desc: Use image node_id 1 for calling the VisualizationApplication obj's underlying member method code with example usage: obj.get_graph() and returns: graph, graph