TensorFlow Eager: A Multi-Stage, Python-Embedded DSL for Machine Learning
This addresses the problem of slow prototyping and limited dynamism for machine learning researchers and developers using TensorFlow, offering a solution that maintains deployment benefits while improving usability.
TensorFlow Eager tackles the usability issues of TensorFlow's graph-based computations, which hinder rapid prototyping and run-time dynamism, by providing an imperative front-end that executes operations immediately and a JIT tracer for graph conversion, enabling easy interpolation between imperative and staged execution.
TensorFlow Eager is a multi-stage, Python-embedded domain-specific language for hardware-accelerated machine learning, suitable for both interactive research and production. TensorFlow, which TensorFlow Eager extends, requires users to represent computations as dataflow graphs; this permits compiler optimizations and simplifies deployment but hinders rapid prototyping and run-time dynamism. TensorFlow Eager eliminates these usability costs without sacrificing the benefits furnished by graphs: It provides an imperative front-end to TensorFlow that executes operations immediately and a JIT tracer that translates Python functions composed of TensorFlow operations into executable dataflow graphs. TensorFlow Eager thus offers a multi-stage programming model that makes it easy to interpolate between imperative and staged execution in a single package.