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 | |
void |
close()
|
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 | |
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 | |
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
See Also
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 |
---|
See Also
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
- an
OperationBuilder
to create an Operation whenbuild()
is invoked. Ifbuild()
is not invoked, then some resources may leak.
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...
}