TFEstimator


TFEstimator

TFEstimator wraps a model defined by model_fn. The model_fn is almost identical to TensorFlow's model_fn except users are required to use ZooOptimizer, which takes a tf.train.Optimzer as input, to derive a train_op.

Remarks:

Create a TFEstimator from a model_fn:

import tensorflow as tf
from zoo.tfpark import TFEstimator, ZooOptimizer
def model_fn(features, labels, mode):

    hidden = tf.layers.dense(features, 32, activation=tf.nn.relu)

    logits = tf.layers.dense(hidden, 10)

    if mode == tf.estimator.ModeKeys.EVAL or mode == tf.estimator.ModeKeys.TRAIN:
        loss = tf.reduce_mean(
            tf.losses.sparse_softmax_cross_entropy(logits=logits, labels=labels))
        train_op = ZooOptimizer(tf.train.AdamOptimizer()).minimize(loss)
        return tf.estimator.EstimatorSpec(mode, train_op=train_op, predictions=logits, loss=loss)
    else:
        return tf.estimator.EstimatorSpec(mode, predictions=logits)

estimator = TFEstimator.from_model_fn(model_fn, model_dir="/tmp/estimator")

Create a TFEstimator from a pre-made estimator:

import tensorflow as tf
linear = tf.estimator.LinearClassifier(feature_columns=feature_columns,
                                           optimizer=ZooOptimizer(tf.train.FtrlOptimizer(0.2)))
estimator = TFEstimator(linear)

Methods

__init__

Create a TFEstimator from a tf.estimator.Estimator

TFEstimator(estimator)

from_model_fn

Create a TFEstimator from a model_fn

TFEstimator.from_model_fn(model_fn, model_dir=None, config=None, params=None, warm_start_from=None)

Arguments

train

train(input_fn, steps=None)

Arguments

evaluate

evaluate(input_fn, eval_methods, steps=None, checkpoint_path=None)

Arguments

predict

predict(input_fn, checkpoint_path=None)

Arguments