![]() |
An abstract class defining the API required for evaluation.
orbit.AbstractEvaluator( name=None )
Attributes | |
---|---|
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).
|
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
@abc.abstractmethod
evaluate( num_steps: tf.Tensor ) -> Optional[Output]
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 Tensor s 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
@classmethod
with_name_scope( method )
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.Variable
s and tf.Tensor
s 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. |