class_docstr: Interface for a subnetwork builder.
  
  Given features, labels, and the best ensemble of subnetworks at iteration
  t-1, a `Builder` creates a `Subnetwork` to add to a candidate
  ensemble at iteration t. These candidate ensembles are evaluated against one
  another at the end of the iteration, and the best one is selected based on its
  complexity-regularized loss.
class_docstr_tok: ["Interface","for","a","subnetwork","builder",".","Given","features",",","labels",",","and","the","best","ensemble","of","subnetworks","at","iteration","t-1",",","a","`","Builder","`","creates","a","`","Subnetwork","`","to","add","to","a","candidate","ensemble","at","iteration","t.","These","candidate","ensembles","are","evaluated","against","one","another","at","the","end","of","the","iteration",",","and","the","best","one","is","selected","based","on","its","complexity-regularized","loss","."]
docstr: Returns the candidate `Subnetwork` to add to the ensemble.
  
  This method will be called only once before
  :meth:`build_subnetwork_train_op`. This method should construct the
  candidate subnetwork's graph operations and variables.
  
  Accessing the global step via :meth:`tf.train.get_or_create_global_step()`
  or :meth:`tf.train.get_global_step()` within this scope will return an
  incrementable iteration step since the beginning of the iteration.
  
  Args:
    features: Input `dict` of :class:`tf.Tensor` objects.
    labels: Labels :class:`tf.Tensor` or a dictionary of string label name to
      :class:`tf.Tensor` (for multi-head). Can be `None`.
    logits_dimension: Size of the last dimension of the logits
      :class:`tf.Tensor`. Typically, logits have for shape `[batch_size,
      logits_dimension]`.
    training: A python boolean indicating whether the graph is in training
      mode or prediction mode.
    iteration_step: Integer :class:`tf.Tensor` representing the step since the
      beginning of the current iteration, as opposed to the global step.
    summary: An :class:`adanet.Summary` for scoping summaries to individual
      subnetworks in Tensorboard. Using :meth:`tf.summary` within this scope
      will use this :class:`adanet.Summary` under the hood.
    previous_ensemble: The best :class:`adanet.Ensemble` from iteration t-1.
      The created subnetwork will extend the previous ensemble to form the
      :class:`adanet.Ensemble` at iteration t.
  
  Returns:
    An :class:`adanet.subnetwork.Subnetwork` instance.
docstr_tok: ["Returns","the","candidate","`","Subnetwork","`","to","add","to","the","ensemble",".","This","method","will","be","called","only","once","before",":","meth",":","`","build_subnetwork_train_op","`",".","This","method","should","construct","the","candidate","subnetwork","'s","graph","operations","and","variables",".","Accessing","the","global","step","via",":","meth",":","`","tf.train.get_or_create_global_step","(",")","`","or",":","meth",":","`","tf.train.get_global_step","(",")","`","within","this","scope","will","return","an","incrementable","iteration","step","since","the","beginning","of","the","iteration",".","Args",":","features",":","Input","`","dict","`","of",":","class",":","`","tf.Tensor","`","objects",".","labels",":","Labels",":","class",":","`","tf.Tensor","`","or","a","dictionary","of","string","label","name","to",":","class",":","`","tf.Tensor","`","(","for","multi-head",")",".","Can","be","`","None","`",".","logits_dimension",":","Size","of","the","last","dimension","of","the","logits",":","class",":","`","tf.Tensor","`",".","Typically",",","logits","have","for","shape","`","[","batch_size",",","logits_dimension","]","`",".","training",":","A","python","boolean","indicating","whether","the","graph","is","in","training","mode","or","prediction","mode",".","iteration_step",":","Integer",":","class",":","`","tf.Tensor","`","representing","the","step","since","the","beginning","of","the","current","iteration",",","as","opposed","to","the","global","step",".","summary",":","An",":","class",":","`","adanet.Summary","`","for","scoping","summaries","to","individual","subnetworks","in","Tensorboard",".","Using",":","meth",":","`","tf.summary","`","within","this","scope","will","use","this",":","class",":","`","adanet.Summary","`","under","the","hood",".","previous_ensemble",":","The","best",":","class",":","`","adanet.Ensemble","`","from","iteration","t-1",".","The","created","subnetwork","will","extend","the","previous","ensemble","to","form","the",":","class",":","`","adanet.Ensemble","`","at","iteration","t.","Returns",":","An",":","class",":","`","adanet.subnetwork.Subnetwork","`","instance","."]
code: def build_subnetwork(
      self,
      features,
      labels,
      logits_dimension,
      training,
      iteration_step,
      summary,
      previous_ensemble=None,
  ):
      # pyformat: disable
      """Returns the candidate `Subnetwork` to add to the ensemble.
  
      This method will be called only once before
      :meth:`build_subnetwork_train_op`. This method should construct the
      candidate subnetwork's graph operations and variables.
  
      Accessing the global step via :meth:`tf.train.get_or_create_global_step()`
      or :meth:`tf.train.get_global_step()` within this scope will return an
      incrementable iteration step since the beginning of the iteration.
  
      Args:
        features: Input `dict` of :class:`tf.Tensor` objects.
        labels: Labels :class:`tf.Tensor` or a dictionary of string label name to
          :class:`tf.Tensor` (for multi-head). Can be `None`.
        logits_dimension: Size of the last dimension of the logits
          :class:`tf.Tensor`. Typically, logits have for shape `[batch_size,
          logits_dimension]`.
        training: A python boolean indicating whether the graph is in training
          mode or prediction mode.
        iteration_step: Integer :class:`tf.Tensor` representing the step since the
          beginning of the current iteration, as opposed to the global step.
        summary: An :class:`adanet.Summary` for scoping summaries to individual
          subnetworks in Tensorboard. Using :meth:`tf.summary` within this scope
          will use this :class:`adanet.Summary` under the hood.
        previous_ensemble: The best :class:`adanet.Ensemble` from iteration t-1.
          The created subnetwork will extend the previous ensemble to form the
          :class:`adanet.Ensemble` at iteration t.
  
      Returns:
        An :class:`adanet.subnetwork.Subnetwork` instance.
      """
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  import collections
  import six
label_desc: Use image node_id 2 for calling the Builder obj's underlying member method code with example usage: obj.build_subnetwork(features, labels, logits_dimension, training, iteration_step, summary, previous_ensemble) without return types