(self, dequeue_fn)
return (predict_step, host_calls, captured_scaffold_fn,
            captured_predict_hooks)
Converts user provided model_fn` as a single predict step on TPU.

    Args:
      dequeue_fn: The function to retrieve inputs, features and labels, from TPU
        infeed dequeue channel.

    Returns:
      A tuple of predict_fn, host_calls, and captured scaffold_fn. The
      predict_fn representing the predict step for TPU.
Converts user provided model_fn` as a single predict step on TPU.
Converts user provided model_fn as a single predict step on TPU .
def convert_to_single_tpu_predict_step(self, dequeue_fn):
    """Converts user provided model_fn` as a single predict step on TPU.

    Args:
      dequeue_fn: The function to retrieve inputs, features and labels, from TPU
        infeed dequeue channel.

    Returns:
      A tuple of predict_fn, host_calls, and captured scaffold_fn. The
      predict_fn representing the predict step for TPU.
    """
    host_calls = _OutfeedHostCall(self._ctx)
    captured_scaffold_fn = _CapturedObject()
    captured_predict_hooks = _CapturedObject()

    def predict_step(unused_scalar_stopping_signal):
      """Evaluation step function for use inside a while loop."""
      inputs = dequeue_fn()
      features, labels = inputs.features_and_labels()
      stopping_signals = inputs.signals()

      assert stopping_signals is not None, (
          'Internal Error: `signals` is missing.')

      tpu_estimator_spec = self._call_model_fn(
          features, labels, is_export_mode=False)
      if not isinstance(tpu_estimator_spec, model_fn_lib._TPUEstimatorSpec):  # pylint: disable=protected-access
        raise RuntimeError(
            'estimator_spec used by TPU prediction must have type'
            '`TPUEstimatorSpec`. Got {}'.format(type(tpu_estimator_spec)))

      self._verify_tpu_spec_predictions(tpu_estimator_spec.predictions)

      captured_scaffold_fn.capture(tpu_estimator_spec.scaffold_fn)
      captured_predict_hooks.capture(tpu_estimator_spec.prediction_hooks)
      to_record = {}
      identity_fn = lambda **kwargs: kwargs
      to_record['predictions'] = [identity_fn, tpu_estimator_spec.predictions]
      to_record['signals'] = [identity_fn, stopping_signals]
      if tpu_estimator_spec.host_call is not None:
        to_record['host_call'] = tpu_estimator_spec.host_call
      host_calls.record(to_record)

      with ops.control_dependencies(host_calls.create_enqueue_op()):
        return _StopSignals.as_scalar_stopping_signal(stopping_signals)

    return (predict_step, host_calls, captured_scaffold_fn,
            captured_predict_hooks)
def convert_to_single_tpu_predict_step ( self , dequeue_fn ) : host_calls = _OutfeedHostCall ( self . _ctx ) captured_scaffold_fn = _CapturedObject ( ) captured_predict_hooks = _CapturedObject ( ) def predict_step ( unused_scalar_stopping_signal ) : """Evaluation step function for use inside a while loop.""" inputs = dequeue_fn ( ) features , labels = inputs . features_and_labels ( ) stopping_signals = inputs . signals ( ) assert stopping_signals is not None , ( 'Internal Error: `signals` is missing.' ) tpu_estimator_spec = self . _call_model_fn ( features , labels , is_export_mode = False ) if not isinstance ( tpu_estimator_spec , model_fn_lib . _TPUEstimatorSpec ) : # pylint: disable=protected-access raise RuntimeError ( 'estimator_spec used by TPU prediction must have type' '`TPUEstimatorSpec`. Got {}' . format ( type ( tpu_estimator_spec ) ) ) self . _verify_tpu_spec_predictions ( tpu_estimator_spec . predictions ) captured_scaffold_fn . capture ( tpu_estimator_spec . scaffold_fn ) captured_predict_hooks . capture ( tpu_estimator_spec . prediction_hooks ) to_record = { } identity_fn = lambda * * kwargs : kwargs to_record [ 'predictions' ] = [ identity_fn , tpu_estimator_spec . predictions ] to_record [ 'signals' ] = [ identity_fn , stopping_signals ] if tpu_estimator_spec . host_call is not None : to_record [ 'host_call' ] = tpu_estimator_spec . host_call host_calls . record ( to_record ) with ops . control_dependencies ( host_calls . create_enqueue_op ( ) ) : return _StopSignals . as_scalar_stopping_signal ( stopping_signals ) return ( predict_step , host_calls , captured_scaffold_fn , captured_predict_hooks )