class_docstr: Implementation of the GraphWave structural embedding algorithm from the paper: "Learning Structural Node Embeddings
  via Diffusion Wavelets" (https://arxiv.org/pdf/1710.10321.pdf)
  
  This class is minimally with a StellarGraph object. Calling the flow function will return a TensorFlow
  DataSet that contains the GraphWave embeddings.
  
  This implementation differs from the paper by removing the automatic method of calculating scales. This method was
  found to not work well in practice, and replicating the results of the paper requires manually specifying much
  larger scales than those automatically calculated.
  
  .. seealso:: Example using this generator: `unsupervised representation learning <https://stellargraph.readthedocs.io/en/stable/demos/embeddings/graphwave-embeddings.html>`__.
  
  Args:
      G (StellarGraph): the StellarGraph object.
      scales (iterable of floats): the wavelet scales to use. Smaller values embed smaller scale structural
          features, and larger values embed larger structural features.
      degree: the degree of the Chebyshev polynomial to use. Higher degrees yield more accurate results but at a
          higher computational cost. According to [1], the default value of 20 is accurate enough for most
          applications.
  
  [1] D. I. Shuman, P. Vandergheynst, and P. Frossard, “Chebyshev Polynomial Approximation for Distributed Signal
  Processing,” https://arxiv.org/abs/1105.1891
class_docstr_tok: ["Implementation","of","the","GraphWave","structural","embedding","algorithm","from","the","paper",":","``","Learning","Structural","Node","Embeddings","via","Diffusion","Wavelets","''","(","https",":","\/\/arxiv.org\/pdf\/1710.10321.pdf",")","This","class","is","minimally","with","a","StellarGraph","object",".","Calling","the","flow","function","will","return","a","TensorFlow","DataSet","that","contains","the","GraphWave","embeddings",".","This","implementation","differs","from","the","paper","by","removing","the","automatic","method","of","calculating","scales",".","This","method","was","found","to","not","work","well","in","practice",",","and","replicating","the","results","of","the","paper","requires","manually","specifying","much","larger","scales","than","those","automatically","calculated",".","..","seealso",":",":","Example","using","this","generator",":","`","unsupervised","representation","learning","<","https",":","\/\/stellargraph.readthedocs.io\/en\/stable\/demos\/embeddings\/graphwave-embeddings.html",">","`","__",".","Args",":","G","(","StellarGraph",")",":","the","StellarGraph","object",".","scales","(","iterable","of","floats",")",":","the","wavelet","scales","to","use",".","Smaller","values","embed","smaller","scale","structural","features",",","and","larger","values","embed","larger","structural","features",".","degree",":","the","degree","of","the","Chebyshev","polynomial","to","use",".","Higher","degrees","yield","more","accurate","results","but","at","a","higher","computational","cost",".","According","to","[","1","]",",","the","default","value","of","20","is","accurate","enough","for","most","applications",".","[","1","]","D.","I.","Shuman",",","P.","Vandergheynst",",","and","P.","Frossard",",","\u201c","Chebyshev","Polynomial","Approximation","for","Distributed","Signal","Processing",",","\u201d","https",":","\/\/arxiv.org\/abs\/1105.1891"]
code: def num_batch_dims(self):
      return 1
  
file_path: stellargraph/stellargraph/mapper/graphwave_generator.py
imports: import tensorflow
  from tensorflow.keras import backend
  import numpy
  from ..core import StellarGraph
  from ..core.validation import require_integer_in_range
  from .base import Generator
  from scipy.sparse.linalg import eigs
  from scipy.sparse import diags
label_desc: Use image node_id 2 for calling the GraphWaveGenerator obj's underlying member method code with example usage: obj.num_batch_dims() and returns: int