# Session

public final class **Session** Driver for `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph` execution.

A `Session` instance encapsulates the environment in which `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Operation`s in a
`https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph` are executed to compute `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Tensor`. For example:

    // Let's say graph is an instance of the Graph class
     // for the computation y = 3 * x

     try (Session s = new Session(graph)) {
       try (Tensor x = Tensor.create(2.0f);
           Tensor y = s.runner().feed("x", x).fetch("y").run().get(0)) {
           System.out.println(y.floatValue());  // Will print 6.0f
       }
       try (Tensor x = Tensor.create(1.1f);
           Tensor y = s.runner().feed("x", x).fetch("y").run().get(0)) {
           System.out.println(y.floatValue());  // Will print 3.3f
       }
     }
     
**WARNING:** A `Session` owns resources that **must** be explicitly freed by
invoking `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session#close()`.

Instances of a Session are thread-safe.

<br />

<br />

<br />

### Nested Classes

|---|---|---|---|
| class | [Session.Run](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session.Run) || Output tensors and metadata obtained when executing a session. |
| class | [Session.Runner](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session.Runner) || Run `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Operation`s and evaluate `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Tensor`. |

### Public Constructors

|---|---|
|   | [Session](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session#Session(org.tensorflow.Graph))([Graph](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph) g) Construct a new session with the associated `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph`. |
|   | [Session](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session#Session(org.tensorflow.Graph,%20byte[]))([Graph](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph) g, byte\[\] config) Construct a new session with the associated `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph` and configuration options. |

### Public Methods

|---|---|
| void | [close](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session#close())() Release resources associated with the Session. |
| [Session.Runner](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session.Runner) | [runner](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session#runner())() Create a Runner to execute graph operations and evaluate Tensors. |

### Inherited Methods

From class java.lang.Object

|---|---|
| boolean | equals(Object arg0) |
| final Class\<?\> | getClass() |
| int | hashCode() |
| final void | notify() |
| final void | notifyAll() |
| String | toString() |
| final void | wait(long arg0, int arg1) |
| final void | wait(long arg0) |
| final void | wait() |

From interface java.lang.AutoCloseable

|---|---|
| abstract void | close() |

## Public Constructors

#### public
**Session**
([Graph](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph) g)

Construct a new session with the associated `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph`.

##### Parameters

| g |   |
|---|---|

#### public
**Session**
([Graph](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph) g, byte\[\] config)

Construct a new session with the associated `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph` and configuration options.

##### Parameters

| g | The `https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Graph` the created Session will operate on. |
| config | Configuration parameters for the session specified as a serialized [ConfigProto](https://www.tensorflow.org/code/tensorflow/core/protobuf/config.proto) protocol buffer. |
|---|---|

##### Throws

| IllegalArgumentException | if the config is not a valid serialization of the ConfigProto protocol buffer. |
|---|---|

## Public Methods

#### public void
**close**
()

Release resources associated with the Session.

Blocks until there are no active executions (`https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session.Runner#run()` calls). A Session
is not usable after close returns.

<br />

#### public [Session.Runner](https://www.tensorflow.org/versions/r2.9/api_docs/java/org/tensorflow/Session.Runner)
**runner**
()

Create a Runner to execute graph operations and evaluate Tensors.