glossary.rst 3.16 KB
Newer Older
Scott Cyphers's avatar
Scott Cyphers committed
1 2
:orphan:

3 4 5 6 7 8
.. glossary: 

Glossary 
========

.. glossary::
Scott Cyphers's avatar
Scott Cyphers committed
9
   :sorted:
10

Scott Cyphers's avatar
Scott Cyphers committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24
   backend

      A component that can execute computations.

   bridge

      A component of nGraph that acts as a backend for a framework,
      allowing the framework to define and execute computations.

   framework

      A machine learning environment, such as TensorFlow, MXNet, or
      neon.

L.S. Cook's avatar
L.S. Cook committed
25
   function graph
Scott Cyphers's avatar
Scott Cyphers committed
26 27 28

      The Intel nGraph library uses a function graph to represent an
      ``op``'s parameters and results.
L.S. Cook's avatar
L.S. Cook committed
29 30 31

   op

Scott Cyphers's avatar
Scott Cyphers committed
32 33 34 35 36 37
      An op represents an operation. Ops are stateless and have zero
      or more inputs and zero or more outputs. Some ops have
      additional constant attributes. Every output of an op
      corresponds to a tensor and has an element type and a shape. The
      element types and shapes of the outputs of an op are determined
      by the inputs and attributes of the op.
L.S. Cook's avatar
L.S. Cook committed
38

39
   parameter
Scott Cyphers's avatar
Scott Cyphers committed
40 41 42

      In the context of a function graph, a "parameter" refers to what
      "stands in" for an argument in an ``op`` definition.
43 44

   result
Scott Cyphers's avatar
Scott Cyphers committed
45 46 47

      In the context of a function graph, the term "result" refers to
      what stands in for the returned value.
L.S. Cook's avatar
L.S. Cook committed
48 49

   shape
Scott Cyphers's avatar
Scott Cyphers committed
50 51 52

      The shape of a tensor is a tuple of non-negative integers that
      represents an exclusive upper bound for coordinate values.
L.S. Cook's avatar
L.S. Cook committed
53

Scott Cyphers's avatar
Scott Cyphers committed
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
   shared pointer

      The C++ standard template library has the template
      ``std::shared_ptr<X>``. A shared pointer is used like an ``X*``
      pointer, but maintains a reference count to the underlying
      object. Each new shared pointer to the object increases the
      count. When a shared pointer goes out of scope, the reference
      count is decremented, and, when the count reaches 0, the
      underlying object is deleted. The function template
      ``std::make_shared<X>(...)`` can be used similarly to ``new
      X(...)``, except it returns a ``std::shared_ptr<X>`` instead of
      an ``X*``.

      If there is a chain of shared pointers from an object back to
      itself, every object in the chain is referenced, so the
      reference counts will never reach 0 and the objects will never
      be deleted.

      If ``a`` referenced ``b`` and ``b`` wanted to track all
      references to itself and shared pointers were used both
      directions, there would be a chain of pointers form ``a`` to
      itself. We avoid this by using shared pointers in only one
      direction, and raw pointers for the inverse
      direction. ``std::enabled_shared_from_this`` is a class template
      that defines a method ``shared_from_this`` that provides a
      shared pointer from a raw pointer.

      nGraph makes use of shared pointers for objects whose lifetime
      is hard to determine when they are allocated.
   
L.S. Cook's avatar
L.S. Cook committed
84
   step
Scott Cyphers's avatar
Scott Cyphers committed
85 86 87 88

      An abstract "action" that produces zero or more tensor outputs
      from zero or more tensor inputs. Steps correspond to *ops* that
      connect *nodes*.
L.S. Cook's avatar
L.S. Cook committed
89
           
Scott Cyphers's avatar
Scott Cyphers committed
90 91 92 93
   tensors

      Tensors are maps from *coordinates* to scalar values, all of the
      same type, called the *element type* of the tensor.
94

95 96 97 98 99
   model description

      A description of a program's fundamental operations that are 
      used by a framework to generate inputs for computation.