WARNING: This is a preview/pre-alpha version. The API and performance characteristics are subject to change.
Eager execution is an experimental interface to TensorFlow that provides an
imperative programming style (à la NumPy). When you
enable eager execution, TensorFlow operations execute immediately; you do not
execute a pre-constructed graph with
Session.run()
.
For example, consider a simple computation in TensorFlow:
x = tf.placeholder(tf.float32, shape=[1, 1])
m = tf.matmul(x, x)
with tf.Session() as sess:
print(sess.run(m, feed_dict={x: [[2.]]}))
# Will print [[4.]]
Eager execution makes this much simpler:
x = [[2.]]
m = tf.matmul(x, x)
print(m)
This feature is in early stages and work remains to be done in terms of smooth support for distributed and multi-GPU training and CPU performance.
- Known issues
- Feedback is welcome, please consider filing an issue to provide it.
Since eager execution is not yet part of a TensorFlow release, using it requires either building from source or the latest nightly builds. The nightly builds are available as:
-
pip
packages and -
docker images.
For example, to run the latest nightly docker image:
# If you have a GPU, use https://github.com/NVIDIA/nvidia-docker
nvidia-docker pull tensorflow/tensorflow:nightly-gpu
nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-gpu
# If you do not have a GPU, use the CPU-only image
docker pull tensorflow/tensorflow:nightly
docker run -it -p 8888:8888 tensorflow/tensorflow:nightly
And then visit http://localhost:8888 in your browser for a Jupyter notebook environment. Try out the notebooks below.
For an introduction to eager execution in TensorFlow, see:
- User Guide
- Notebook: Basic Usage
- Notebook: Gradients
- Notebook: Importing Data
- 2017/10/31: Initial preview release.