tensorflow基础知识

with tf.Graph().as_default()

tensorflow下Graph中tf.Operation是一个node,而tf.Tensor是一个edge。在没有特别说明的情况下,程序中定义的tf.Operation均是添加进入default_graph中。

tf.Graph()表示实例化了一个类,一个用于tensorflow计算和表示用的数据流图,我们可以利用很多线程生成很多张图,但是默认图只有一张。

tf.Graph().as_default()表示将这个类实例,也就是新生成的图作为整个tensorflow运行环境的默认图,如果只有一个主线程那么不写也没有关系,tensorflow里面已经存好了一张默认图,可以使用tf.get_default_graph()来调用

with tf.Graph().as_default()会启动一个上下文管理器。所谓上下文管理器,就是在程序执行前将上文中当前所需要的资源准备好,并在结束时被系统回收。

tf.placeholder()

函数原型:

tf.placeholder(
    dtype,
    shape=None,
    name=None
)

参数说明:

  • dtype:数据类型,通常是tf.float32,tf.float64等数值类型
  • shape:数据形状,默认是None,指一维向量,也可以是多维,例如[2,3],[None,3]表示列是3,行不定)
  • name:名称

为什么要使用placeholder

Tensorflow的设计理念称之为计算流图,在编写程序时,首先构建整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的。然后,在实际的运行时,启动一个session,程序才会真正运行。这样做的好处是:避免反复切换底层程序运行的上下文,tensorflow会帮我们优化整个系统的代码。

placeholder函数是在神经网络构建graph时在模型里的占位ie,此时并没有把要输入的数据传入模型,它只会分配必要的内存。建立session后,在会话中,运行模型的时候通过feed_dict()函数向占位符输入数据。

你可能感兴趣的:(tensorflow)