|TensorFlow 1 version||View source on GitHub|
A TensorFlow computation, represented as a dataflow graph.
Compat aliases for migration
See Migration guide for more details.
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
tf.Tensor objects, which represent the units of data that
flow between operations.
Using graphs directly (deprecated)
tf.Graph can be constructed and used directly without a
was required in TensorFlow 1, but this is deprecated and it is recommended to
tf.function instead. If a graph is directly used, other deprecated
TensorFlow 1 classes are also required to execute the graph, such as a
A default graph can be registered with the
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.
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
tf.Variable uses a collection (named
all variables that are created during the construction of a graph. The caller
may define additional collections by specifying a new name.
||Returns True iff this graph represents a function.|
||Returns the names of the collections known to this graph.|
||True if this graph has been finalized.|
The GraphDef version information of this graph.
For details on the meaning of each version, see
||The graph-level random seed of this graph.|
Returns a version number that increases as ops are added to the graph.
Note that this is unrelated to the
add_to_collection( name, value )
value in the collection with the given
Note that collections are not sets, so it is possible to add a value to a collection several times.
The key for the collection. The
||The value to add to the collection.|
add_to_collections( names, value )
value in the collections given by
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 can be any iterable, but if
names is a string, it is treated as a
single collection name.
The keys for the collections to add to. The
||The value to add to the collections.|
Returns a context manager that makes this
Graph the default graph.
This method should be used if you want to create multiple graphs in the same process. For convenience, a global default graph is provided, and all ops will be added to this graph if you do not create a new graph explicitly.
Use this method with the
with keyword to specify that ops created within
the scope of a block should be added to this graph. In this case, once
the scope of the
with is exited, the previous default graph is set again
as default. There is a stack, so it's ok to have multiple nested levels
The default graph is a property of the current thread. If you
create a new thread, and wish to use the default graph in that
thread, you must explicitly add a
with g.as_default(): in that
The following code examples are equivalent:
# 1. Using Graph.as_default(): g = tf.Graph() with g.as_default(): c = tf.constant(5.0) assert c.graph is g # 2. Constructing and making default: with tf.Graph().as_default() as g: c = tf.constant(5.0) assert c.graph is g
If eager execution is enabled ops created under this context manager will be added to the graph instead of executed eagerly.
|A context manager for using this graph as the default graph.|
as_graph_def( from_version=None, add_shapes=False )
Returns a serialized
GraphDef representation of this graph.
This method is thread-safe.
Optional. If this is set, returns a
||If true, adds an "_output_shapes" list attr to each node with the inferred shapes of each of its outputs.|