Beispiel #1
0
 def export(self,
            export_dir,
            input_fn,
            signature_fn=None,
            input_feature_key=None,
            default_batch_size=1):
   """See BaseEstimator.export."""
   # Reset model function with basic device assigner.
   # Servo doesn't support distributed inference
   # but it will try to respect device assignments if they're there.
   # pylint: disable=protected-access
   orig_model_fn = self._estimator._model_fn
   self._estimator._model_fn = get_model_fn(
       self.params, self.graph_builder_class,
       tensor_forest.RandomForestDeviceAssigner(),
       weights_name=self.weights_name)
   result = self._estimator.export(
       export_dir=export_dir,
       input_fn=input_fn,
       input_feature_key=input_feature_key,
       use_deprecated_input_fn=False,
       signature_fn=(signature_fn or
                     (export.regression_signature_fn
                      if self.params.regression else
                      export.classification_signature_fn_with_prob)),
       default_batch_size=default_batch_size,
       prediction_key=eval_metrics.INFERENCE_PROB_NAME)
   self._estimator._model_fn = orig_model_fn
   # pylint: enable=protected-access
   return result
Beispiel #2
0
    def __init__(self,
                 params,
                 device_assigner=None,
                 model_dir=None,
                 graph_builder_class=tensor_forest.RandomForestGraphs,
                 master='',
                 accuracy_metric=None,
                 tf_random_seed=None,
                 config=None,
                 feature_engineering_fn=None):
        self.params = params.fill()
        self.accuracy_metric = (
            accuracy_metric
            or ('r2' if self.params.regression else 'accuracy'))
        self.data_feeder = None
        self.device_assigner = (device_assigner
                                or tensor_forest.RandomForestDeviceAssigner())
        self.graph_builder_class = graph_builder_class
        self.training_args = {}
        self.construction_args = {}
        self._feature_engineering_fn = (feature_engineering_fn
                                        or (lambda features, targets:
                                            (features, targets)))

        super(TensorForestEstimator, self).__init__(model_dir=model_dir,
                                                    config=config)
Beispiel #3
0
    def __init__(self,
                 params,
                 device_assigner=None,
                 model_dir=None,
                 graph_builder_class=tensor_forest.RandomForestGraphs,
                 master='',
                 accuracy_metric=None,
                 tf_random_seed=None,
                 continue_training=False,
                 verbose=1,
                 max_to_keep=5,
                 save_checkpoint_secs=300):
        self.params = params.fill()
        self.accuracy_metric = (
            accuracy_metric
            or ('r2' if self.params.regression else 'accuracy'))
        self.data_feeder = None
        self.device_assigner = (device_assigner
                                or tensor_forest.RandomForestDeviceAssigner())
        self.graph_builder_class = graph_builder_class
        self.training_args = {}
        self.construction_args = {}

        config = run_config.RunConfig(
            master=master,
            tf_random_seed=(tf_random_seed or int(
                (time.time() * 1000) % 1000)),
            save_checkpoints_secs=save_checkpoint_secs,
            keep_checkpoint_max=max_to_keep)

        super(TensorForestEstimator, self).__init__(model_dir=model_dir,
                                                    config=config)
Beispiel #4
0
  def __init__(self,
               params,
               device_assigner=None,
               optimizer_class=adagrad.AdagradOptimizer,
               **kwargs):

    self.device_assigner = (
        device_assigner or tensor_forest.RandomForestDeviceAssigner())

    self.params = params

    self.optimizer = optimizer_class(self.params.learning_rate)

    self.is_regression = params.regression

    self.regularizer = None
    if params.regularization == "l1":
      self.regularizer = layers.l1_regularizer(
          self.params.regularization_strength)
    elif params.regularization == "l2":
      self.regularizer = layers.l2_regularizer(
          self.params.regularization_strength)
Beispiel #5
0
 def __init__(self, params, layer_num, device_assigner, *args, **kwargs):
     self.layer_num = layer_num
     self.device_assigner = (device_assigner
                             or tensor_forest.RandomForestDeviceAssigner())
     self.params = params
     self._define_vars(params, **kwargs)