class_docstr: Keras-compatible data generator for for node inference models
  that require full-batch training (e.g., GCN, GAT).
  Use this class with the Keras methods :meth:`keras.Model.fit`,
      :meth:`keras.Model.evaluate`, and
      :meth:`keras.Model.predict`,
  
  This class uses sparse matrix representations to send data to the models,
  and only works with the Keras tensorflow backend. For any other backends,
  use the :class:`.FullBatchSequence` class.
  
  This class should be created using the `.flow(...)` method of
  :class:`.FullBatchNodeGenerator`.
  
  Args:
      features (np.ndarray): An array of node features of size (N x F),
          where N is the number of nodes in the graph, F is the node feature size
      A (sparse matrix): An adjacency matrix of the graph of size (N x N).
      targets (np.ndarray, optional): An optional array of node targets of size (N x C),
          where C is the target size (e.g., number of classes for one-hot class targets)
      indices (np.ndarray, optional): Array of indices to the feature and adjacency matrix
          of the targets. Required if targets is not None.
class_docstr_tok: ["Keras-compatible","data","generator","for","for","node","inference","models","that","require","full-batch","training","(","e.g.",",","GCN",",","GAT",")",".","Use","this","class","with","the","Keras","methods",":","meth",":","`","keras.Model.fit","`",",",":","meth",":","`","keras.Model.evaluate","`",",","and",":","meth",":","`","keras.Model.predict","`",",","This","class","uses","sparse","matrix","representations","to","send","data","to","the","models",",","and","only","works","with","the","Keras","tensorflow","backend",".","For","any","other","backends",",","use","the",":","class",":","`",".FullBatchSequence","`","class",".","This","class","should","be","created","using","the","`",".flow","(","...",")","`","method","of",":","class",":","`",".FullBatchNodeGenerator","`",".","Args",":","features","(","np.ndarray",")",":","An","array","of","node","features","of","size","(","N","x","F",")",",","where","N","is","the","number","of","nodes","in","the","graph",",","F","is","the","node","feature","size","A","(","sparse","matrix",")",":","An","adjacency","matrix","of","the","graph","of","size","(","N","x","N",")",".","targets","(","np.ndarray",",","optional",")",":","An","optional","array","of","node","targets","of","size","(","N","x","C",")",",","where","C","is","the","target","size","(","e.g.",",","number","of","classes","for","one-hot","class","targets",")","indices","(","np.ndarray",",","optional",")",":","Array","of","indices","to","the","feature","and","adjacency","matrix","of","the","targets",".","Required","if","targets","is","not","None","."]
code: def __len__(self):
      return 1
  
imports: import warnings
  import operator
  import random
  import collections
  import numpy
  import itertools
  import networkx
  import scipy.sparse
  from tensorflow.keras import backend
  from functools import reduce
  from tensorflow.keras.utils import Sequence
  from ..data.unsupervised_sampler import UnsupervisedSampler
  from ..core.utils import is_real_iterable
  from ..random import random_state
  from scipy import sparse
  from ..core.experimental import experimental
label_desc: Use image node_id 2 for calling the SparseFullBatchSequence obj's underlying member method code with example usage: obj.__len__() and returns: int