import tensorflow as tf

      types: A list of `Tensor` of `int32`, with shapes
        `[num_nodes * count1]`, `[num_nodes * count1 * count2]` ...
  """
  neighbors_list = [tf.reshape(nodes, [-1])]
  weights_list = []
  type_list = []
  for hop_edge_types, count in zip(edge_types, counts):
    neighbors, weights, types = sample_neighbor(
        neighbors_list[-1], hop_edge_types, count, default_node=default_node)
    neighbors_list.append(tf.reshape(neighbors, [-1]))
    weights_list.append(tf.reshape(weights, [-1]))
    type_list.append(tf.reshape(types, [-1]))
  return neighbors_list, weights_list, type_list


def get_multi_hop_neighbor(nodes, edge_types):
  """
  Get multi-hop neighbors with adjacent matrix.
