Paper Summary: A Computational Model For Tensorflow

This newspaper appeared inwards MAPL 17. It is written past times Martin Abadi, Michael Isard, in addition to Derek G. Murray at Google Brain. It is a 7-page paper, in addition to the meat of the newspaper is inwards Section 3.

I am interested inwards the newspaper because it talks almost TLA+ modeling of TensorFlow graphs in addition to uses that for creating an operational semantics for TensorFlow programs. In other words, the newspaper provides a conceptual framework for agreement the demeanour of TensorFlow models during preparation in addition to inference.

As yous recall, TensorFlow relies on dataflow graphs amongst mutable state. This newspaper describes a simple in addition to simple semantics for these dataflow graphs using TLA+. The semantics model does non aim to concern human relationship for implementation choices: it defines what outputs may live produced, without proverb precisely how. A framework of this sort does non simply convey theoretical/academical value; it tin live useful to assess correctness of TensorFlow's dataflow graph (symbolic computation graph) rewriting optimizations such every bit those inwards XLA.

TensorFlow refresher

In TensorFlow, dataflow graphs back upwards both preparation in addition to inference. That is, a computation may perform i or to a greater extent than steps of preparation for a machine-learning model, or it may live the application of a trained model. TensorFlow models are assembled from primitive operations past times business office composition. The operations are implemented past times kernels that tin live run on item types of devices (for instance, CPUs or GPUs).

In add-on to edges for communicating tensors, a graph may include command edges that constrain the guild of execution. This guild tin acquit upon performance besides every bit the observable semantics inwards the presence of mutable state.

A customer typically constructs a graph using a front-end linguistic communication such every bit Python. Then the customer tin brand a telephone outcry upwards to run the graph, specifying which inputs to "feed" in addition to which outputs to "fetch". TensorFlow propagates the input values, repeatedly applying the operations prescribed past times the graph, until no to a greater extent than nodes tin fire. The guild inwards which nodes burn is constrained past times information dependencies in addition to command edges, but is non necessarily unique. The execution ends amongst values on the graph's output edges. Often, a graph is executed multiple times. Most tensors hit non move past times a unmarried execution of the graph. However, mutable set down does persist across executions.

Core Computational Model 

This department presents TLA+ modeling of the TensorFlow.

TensorFlow values include tensors in addition to variables. The TLA+ model distinguishes 3 kinds of edges: tensor edges, variable edges, in addition to command edges.

Operations are of several kinds: Functions, Var(x), Read, Assign. A TensorFlow programme consists of a directed acyclic graph G, addition a mapping (a "labelling") L from nodes of G to TensorFlow operations.

A TensorFlow programme starts amongst non-EMPTY input edges, consumes the values on those edges, in addition to repeatedly propagates them, applying operations, until no to a greater extent than nodes tin fire. In the course of teaching of such an execution, each node fires precisely once, in addition to the execution ends amongst non-EMPTY output edges. The guild inwards which nodes burn is non necessarily unique: determinism is non e'er expected or desired. For example, lock-free stochastic slope descent is a mutual rootage of intentional race conditions.

Each alter of set down inwards the demeanour is caused past times the execution (i.e., the firing) of precisely i node inwards the graph. A status for whether a node n tin drive a alter from a set down sec to a set down s′ is that for all its incoming command edges d, InTransit(d) = GO inwards sec in addition to InTransit(d) = EMPTY inwards s′, in addition to for all its outgoing command edges e, InTransit(e) = GO inwards s′. Moreover, InTransit(d) must live the same inwards sec in addition to inwards s′ for all edges d non incident on n, in addition to VarValue(x) must live the same inwards sec in addition to inwards s′ for all variables x, except inwards the instance where L(n) = Assign-f for unopen to business office f.


Figure 3 shows a computation that *assign-adds* x:=x+D in addition to x:=x+E. The *assign-adds* commute for x, but *writes* lonely hit non commute in addition to leads to a
last-write-wins race condition, every bit inwards Figure 4.

A race status tin live avoided past times other means, such every bit implementing mutexes using TensorFlow command primitives.

Further work 

The newspaper claims that this semantics tin live generalized to adjust cyclic execution graphs inwards TensorFlow. In that generalization, instead of firing precisely once, each node fires at most i time inwards each "execution context", where an "execution context" identifies an iteration of each (possibly nested) loop that contains the node.

0 Response to "Paper Summary: A Computational Model For Tensorflow"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel