コード例 #1
0
def simple_linear_classifier(export_path, eval_export_path):
    """Trains and exports a simple linear classifier."""

    feature_spec = tf.feature_column.make_parse_example_spec(
        util.linear_columns(False))
    eval_feature_spec = tf.feature_column.make_parse_example_spec(
        util.linear_columns(True) + [
            tf.feature_column.categorical_column_with_hash_bucket(
                'slice_key', 100)
        ])

    classifier = tf.estimator.LinearClassifier(
        feature_columns=util.linear_columns(),
        loss_reduction=tf.compat.v1.losses.Reduction.SUM)
    classifier = tf.estimator.add_metrics(classifier,
                                          util.classifier_extra_metrics)
    classifier.train(input_fn=util.make_classifier_input_fn(
        tf.feature_column.make_parse_example_spec(util.linear_columns(True))),
                     steps=1000)

    return util.export_model_and_eval_model(
        estimator=classifier,
        serving_input_receiver_fn=(
            tf.estimator.export.build_parsing_serving_input_receiver_fn(
                feature_spec)),
        eval_input_receiver_fn=export.build_parsing_eval_input_receiver_fn(
            eval_feature_spec, label_key='label'),
        export_path=export_path,
        eval_export_path=eval_export_path)
コード例 #2
0
def simple_linear_regressor(export_path, eval_export_path):
  """Trains and exports a simple linear regressor."""

  feature_spec = tf.feature_column.make_parse_example_spec(
      util.linear_columns(False))
  eval_feature_spec = tf.feature_column.make_parse_example_spec(
      util.linear_columns(True) +
      [tf.feature_column.categorical_column_with_hash_bucket('slice_key', 100)])

  regressor = tf.estimator.LinearRegressor(
      feature_columns=util.linear_columns())
  regressor = tf.contrib.estimator.add_metrics(regressor,
                                               util.regressor_extra_metrics)
  regressor.train(
      input_fn=util.make_regressor_input_fn(
          tf.feature_column.make_parse_example_spec(util.linear_columns(True))),
      steps=3000)

  return util.export_model_and_eval_model(
      estimator=regressor,
      serving_input_receiver_fn=(
          tf.estimator.export.build_parsing_serving_input_receiver_fn(
              feature_spec)),
      eval_input_receiver_fn=export.build_parsing_eval_input_receiver_fn(
          eval_feature_spec, label_key='label'),
      export_path=export_path,
      eval_export_path=eval_export_path)