tf.Graph

A TensorFlow computation, represented as a dataflow graph.

Used in the notebooks

Used in the guide Used in the tutorials

Graphs are used by tf.functions to represent the function's computations. Each graph contains a set of tf.Operation objects, which represent units of computation; and tf.Tensor objects, which represent the units of data that flow between operations.

Using graphs directly (deprecated)

A tf.Graph can be constructed and used directly without a tf.function, as was required in TensorFlow 1, but this is deprecated and it is recommended to use a tf.function instead. If a graph is directly used, other deprecated TensorFlow 1 classes are also required to execute the graph, such as a tf.compat.v1.Session.

A default graph can be registered with the tf.Graph.as_default context manager. Then, operations will be added to the graph instead of being executed eagerly. For example:

g = tf.Graph()
with g.as_default():
  # Define operations and tensors in `g`.
  c = tf.constant(30.0)
  assert c.graph is g

tf.compat.v1.get_default_graph() can be used to obtain the default graph.

Important note: This class is not thread-safe for graph construction. All operations should be created from a single thread, or external synchronization must be provided. Unless otherwise specified, all methods are not thread-safe.

A Graph instance supports an arbitrary number of "collections" that are identified by name. For convenience when building a large graph, collections can store groups of related objects: for example, the tf.Variable uses a collection (named tf.GraphKeys.GLOBAL_VARIABLES) for all variables that are created during the construction of a graph. The caller may define additional collections by specifying a new name.

building_function Returns True iff this graph represents a function.
collections Returns the names of the collections known to this graph.
finalized True if this graph has been finalized.
graph_def_versions The GraphDef version information of this graph.

For details on the meaning of each version, see GraphDef.

seed The graph-level random seed of this graph.
version Returns a version number that increases as ops are added to the graph.

Note that this is unrelated to the tf.Graph.graph_def_versions.

Methods

add_to_collection

View source

Stores value in the collection with the given name.

Note that collections are not sets, so it is possible to add a value to a collection several times.

Args
name The key for the collection. The GraphKeys class contains many standard names for collections.
value The value to add to the collection.

add_to_collections

View source

Stores value in the collections given by names.

Note that collections are not sets, so it is possible to add a value to a collection several times. This function makes sure that duplicates in names are ignored, but it will not check for pre-existing membership of value in any of the collections in names.

names can be any iterable, but if names is a string, it is treated as a single collection name.

Args
names The keys for the collections to add to. The GraphKeys class contains many standard names for collections.
value The value to add to the collections.

as_default