class_docstr: Manages placeholders associated with batch of graphs and their topology
docstr: Converts the current batch of WeaveMol into tensorflow feed_dict.
  
  Assigns the atom features and pair features to the
  placeholders tensors
  
  params
  ------
  batch : np.ndarray
    Array of WeaveMol
  
  returns
  -------
  feed_dict : dict
    Can be merged with other feed_dicts for input into tensorflow
docstr_tok: ["Converts","the","current","batch","of","WeaveMol","into","tensorflow","feed_dict",".","Assigns","the","atom","features","and","pair","features","to","the","placeholders","tensors","params","--","--","--","batch",":","np.ndarray","Array","of","WeaveMol","returns","--","--","--","-","feed_dict",":","dict","Can","be","merged","with","other","feed_dicts","for","input","into","tensorflow"]
code: def batch_to_feed_dict(self, batch):
      """Converts the current batch of WeaveMol into tensorflow feed_dict.
  
      Assigns the atom features and pair features to the
      placeholders tensors
  
      params
      ------
      batch : np.ndarray
        Array of WeaveMol
  
      returns
      -------
      feed_dict : dict
        Can be merged with other feed_dicts for input into tensorflow
      """
      # Extract atom numbers
      atom_feat = []
      pair_feat = []
      atom_split = []
      atom_to_pair = []
      pair_split = []
      max_atoms = self.max_atoms
      start = 0
      for im, mol in enumerate(batch):
          n_atoms = mol.get_num_atoms()
          # number of atoms in each molecule
          atom_split.extend([im] * n_atoms)
          # index of pair features
          C0, C1 = np.meshgrid(np.arange(n_atoms), np.arange(n_atoms))
          atom_to_pair.append(
              np.transpose(
                  np.array([C1.flatten() + start, C0.flatten() + start])
              )
          )
          # number of pairs for each atom
          pair_split.extend(C1.flatten() + start)
          start = start + n_atoms
  
          # atom features
          atom_feat.append(mol.get_atom_features())
          # pair features
          pair_feat.append(
              np.reshape(
                  mol.get_pair_features(),
                  (n_atoms * n_atoms, self.n_pair_feat),
              )
          )
  
      atom_feat = np.concatenate(atom_feat, axis=0)
      pair_feat = np.concatenate(pair_feat, axis=0)
      atom_to_pair = np.concatenate(atom_to_pair, axis=0)
      atom_split = np.array(atom_split)
      # Generate dicts
      dict_DTNN = {
          self.atom_features_placeholder: atom_feat,
          self.pair_features_placeholder: pair_feat,
          self.pair_split_placeholder: pair_split,
          self.atom_split_placeholder: atom_split,
          self.atom_to_pair_placeholder: atom_to_pair,
      }
      return dict_DTNN
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import unicode_literals
  import warnings
  import numpy
  import tensorflow
  from deepchem.nn.copy import Input
  from deepchem.feat.mol_graphs import ConvMol
label_desc: Use image node_id 3 for calling the AlternateWeaveGraphTopology obj's underlying member method code with example usage: obj.batch_to_feed_dict(batch) and returns: dict_DTNN