orbit.AbstractEvaluator

An abstract class defining the API required for evaluation.

name Returns the name of this module as passed or determined in the ctor.

name_scope Returns a tf.name_scope instance for this class.
non_trainable_variables Sequence of non-trainable variables owned by this module and its submodules.
submodules Sequence of all sub-modules.

Submodules are modules which are properties of this module, or found as properties of modules which are properties of this module (and so on).

a = tf.Module() b = tf.Module() c = tf.Module() a.b = b b.c = c list(a.submodules) == [b, c] True list(b.submodules) == [c] True list(c.submodules) == [] True

trainable_variables Sequence of trainable variables owned by this module and its submodules.

variables Sequence of variables owned by this module and its submodules.

Methods

evaluate

View source

Implements num_steps steps of evaluation.

This method will by called the Controller to perform an evaluation. The num_steps parameter specifies the number of steps of evaluation to run, which is specified by the user when calling one of the Controller's evaluation methods. A special sentinel value of -1 is reserved to indicate evaluation should run until the underlying data source is exhausted.

Args
num_steps The number of evaluation steps to run. Note that it is up to the model what constitutes a "step". Evaluations may also want to support "complete" evaluations when num_steps == -1, running until a given data source is exhausted.

Returns
Either None, or a dictionary mapping names to Tensors or NumPy values. If a dictionary is returned, it will be written to logs and as TensorBoard summaries. The dictionary may also be nested, which will generate a hierarchy of summary directories.

with_name_scope

Decorator to automatically enter the module name scope.

class MyModule(tf.Module):  @tf.Module.with_name_scope  def __call__(self, x):  if not hasattr(self, 'w'):  self.w = tf.Variable(tf.random.normal([x.shape[1], 3]))  return tf.matmul(x, self.w)

Using the above module would produce tf.Variables and tf.Tensors whose names included the module name:

mod = MyModule() mod(tf.ones([1, 2])) <tf.Tensor: shape=(1, 3), dtype=float32, numpy=..., dtype=float32)> mod.w <tf.Variable 'my_module/Variable:0' shape=(2, 3) dtype=float32, numpy=..., dtype=float32)>

Args
method The method to wrap.

Returns
The original method wrapped such that it enters the module's name scope.