EagerSession

public final class EagerSession

An environment for executing TensorFlow operations eagerly.

Eager execution is an imperative programming environment that evaluates operations immediately, without building graphs. Operations return concrete values instead of constructing a computational graph to run later, as with Graph s and Session s.

This makes it easy to develop with TensorFlow and debug models, as it behaves more like a standard programming library.

Instances of a EagerSession are thread-safe.

Nested Classes

enum EagerSession.DevicePlacementPolicy Controls how to act when we try to run an operation on a given device but some input tensors are not on that device.
class EagerSession.Options

Public Methods

void
checkInput ( Op input)
Checks that input is valid to use as an input in this execution environment.
void
static EagerSession
create ()
Returns an EagerSession configured with default options.
ExecutionEnvironment.Types
environmentType ()
Get the type of this environment (from the `Environments` enumeration.
static EagerSession
getDefault ()
Returns the default eager session

Once initialized, the default eager session remains active for the whole life of the application, as opposed to sessions obtained from create() or build() which should be closed after their usage.

static EagerSession
initDefault ( EagerSession.Options options)
Initializes the default eager session, which remains active for the lifetime of the application.
boolean
isOpEnabled (String opType)
Returns true if the given operation is valid in this execution environment.
OperationBuilder
opBuilder (String type, String name)
Returns a builder to create a new Operation .
static EagerSession.Options
options ()
Returns an object that configures and builds a EagerSession with custom options.

Inherited Methods

Public Methods

public void checkInput ( Op input)

Checks that input is valid to use as an input in this execution environment. Throws IllegalArgumentException if not.

Parameters
input The op to check

public void close ()

public static EagerSession create ()

Returns an EagerSession configured with default options.

WARNING: Instances of EagerSession returned by this method must be explicitly freed by invoking close() when they are no longer needed. This could be achieve using the `try-with-resources` technique.

Example usage:

try (EagerSession session = EagerSession.create()) {
   Ops tf = Ops.create(session);
   // build execute operations eagerly...
 
 }

public ExecutionEnvironment.Types environmentType ()

Get the type of this environment (from the `Environments` enumeration.

Returns
  • An `Environments` value indicating the type of execution environment.

public static EagerSession getDefault ()

Returns the default eager session

Once initialized, the default eager session remains active for the whole life of the application, as opposed to sessions obtained from create() or build() which should be closed after their usage.

The default set of EagerSession.Options is used to initialize the session on the first call. To override this behavior, it is possible to invoke initDefault(Options) with a different set of options prior to this first call.

Example usage:

// Starting to build eager operations using default session, by calling
 // EagerSession.getDefault() implicitly
 Ops tf = Ops.create();

 // Starting to build eager operations using default session, by calling
 // EagerSession.getDefault() explicitly
 Ops tf = Ops.create(EagerSession.getDefault());
 

Returns
  • default eager session

public static EagerSession initDefault ( EagerSession.Options options)

Initializes the default eager session, which remains active for the lifetime of the application.

This method is implicitly invoked on the first call to getDefault() , but can also be invoked explicitly to override default options.

Note that calling this method more than once will throw an IllegalArgumentException as the default session cannot be modified once it has been created. Therefore, it is important to explicitly initialize it before getDefault() is invoked for the first time from any thread.

Example usage:

// Initializing default session to override default options is valid but
 // is optional
 EagerSession.initDefault(EagerSession.options().async(true));

 // Starting to build eager operations using default session, by calling
 // EagerSession.getDefault() implicitly
 Ops tf = Ops.create();

 // Initializing default session more than once or after using it is not
 // permitted and throws an exception
 EagerSession.initDefault(EagerSession.options().async(true));  // throws
 

Parameters
options options to use to build default session
Returns
  • default eager session
Throws
IllegalStateException if the default session is already initialized

public boolean isOpEnabled (String opType)

Returns true if the given operation is valid in this execution environment.

Parameters
opType The op to check.
Returns
  • Whether the given operation is valid in this execution environment.

public OperationBuilder opBuilder (String type, String name)

Returns a builder to create a new Operation .

Parameters
type of the Operation (i.e., identifies the computation to be performed)
name to refer to the created Operation in this environment scope.
Returns

public static EagerSession.Options options ()

Returns an object that configures and builds a EagerSession with custom options.

WARNING: Instances of EagerSession returned by this method must be explicitly freed by invoking close() when they are no longer needed. This could be achieve using the `try-with-resources` technique.

Example usage:

try (EagerSession session = EagerSession.options().async(true).build()) {
   Ops tf = Ops.create(session);
   // build execute operations eagerly and asynchronously...
 
 }