'Builds an inference graph for this component.
If this graph is being constructed \'during_training\', then it needs to be
differentiable even though it doesn\'t return an explicit cost.
There may be other cases where the distinction between training and eval is
important. The handling of dropout is an example of this.
Args:
state: MasterState from the \'AdvanceMaster\' op that advances the
underlying master to this component.
network_states: dictionary of component NetworkState objects.
during_training: whether the graph is being constructed during training
Returns:
Handle to the state once inference is complete for this Component.'

@abstractmethod
def build_greedy_inference(self, state, network_states, during_training=False):

    pass
