tensorflow系列之tf.graph

我们知道Tensorflow可看作是一个数据流图(Dataflow),由节点和边构成,其中节点表示一个操作,一条边表示一个Tensor,每个节点可以从自己的入边获取自己的输入,同时也可以产生输出通过自己的出边流向下一个节点,首先我们将介绍Tensorflow中的tf.Graph。
在我们通常的tensorflow程序中,会默认给我们构建一个图,我们可以通过:
tf.get_default_graph()
得到这个默认的图,因此我们所添加的各种操作(节点)都会默认加到这个图中。如下是不同创建图的方式:
tensorflow系列之tf.graph_第1张图片
在这里需要注意的是,Graph类并不是线程安全的,所以,所有的操作都应该通过一个线程进行添加,或者需要做好同步机制。接下来介绍一些这个类中常见的方法:
1.向容器中添加元素
tensorflow系列之tf.graph_第2张图片
注意add_to_collection和add_to_collections中并不是set数据结构,所有你是可以向里面添加key值相同的元素。
2.删除图中某个容器
tensorflow系列之tf.graph_第3张图片
3.指定使用的设备
我们采用官方文档的例子:
tensorflow系列之tf.graph_第4张图片
对于device方法的参数,既可以是字符串,也可以是一个方法,也可以是None。
4.对于我们之前添加的collection,我们可以通过下面的方式获取collection中的内容
tensorflow系列之tf.graph_第5张图片
5.获取命名空间 get_name_scope()
tensorflow系列之tf.graph_第6张图片
注意,若name_scope那么重复了,tensorflow在内部通过unique_name()会对其进行处理从而保证其唯一性:
tensorflow系列之tf.graph_第7张图片
6.获取图中Operation和Tensor
tensorflow系列之tf.graph_第8张图片

开发环境:
Python: 3.7
Tensorflow: r1.13

示例代码地址:https://github.com/jmsking/tensorflow-0-1.git
欢迎关注公众号【AIML_2018】
里面记录了自己在学习机器学习及深度学习的感悟,同时介绍了机器学习及深度学习的必备数学知识,希望大家一起进步。

你可能感兴趣的:(Tensorflow,机器学习)