当前位置: 代码迷 >> 综合 >> Tensorflow入门笔记
  详细解决方案

Tensorflow入门笔记

热度:2   发布时间:2024-01-26 21:57:05.0

1 Tensorflow计算模型---计算图

Tensorflow中所有的计算都会被转化为计算图上的节点。

众所周知,Tensorflow包含两个重要概念Tensor和Flow。Tensor就是张量,在这里可以简单理解为多维数组,Flow就是流,表明

张量之间通过计算相互转化的过程。Tensorflow是一个通过计算图的形式来表述计算的编程系统。Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。

2 计算图的使用

一般Tensorflow程序可以分为两个阶段,在第一阶段需要定义计算图中所有的计算。例如加法运算先定义两个输入,然后定义一个计算来得到他们的和。第二阶段为执行计算。代码如下:

import tensorflow  as tf
a=tf.constant([1.0,2.0],name="a")
b=tf.constant([2.0,3.0],name="b")
result=a+b

第一行代码的意思是导入Tensorflow并且用tf代替Tensorflow模块的名称,这样会使整个程序更加简洁。在上述的过程中,Tensorflow会自动将定义的计算转化为计算图上的节点。在Tensorflow程序中,系统自动维护一个默认的计算图,通过tf.get_default_graph函数可以获取当前默认的计算图。如下代码所示:

print(a.graph is tf.get_default_graph())
#通过a.graph可以查看张量所属的计算图,因为没有特定指定,所以这个
#计算图应该等于当前默认的计算图。所以上面这个操作输出值为True

同时Tensorflow可以通过tf.Graph函数来生成新的计算图,不同计算图上的张量和运算都不会共享,如下代码所示:

import tensorflow as tfg1=tf.Graph()
with g1.as_default():#在计算图g1中定义变量“V”,并设置初始值为0v=tf.get_variable("v",shape=[1],initializer=tf.zeros_initializer)
g2=tf.Graph()
with g2.as_default():#在计算图g2中定义变量“V”,并设置初始值为1v=tf.get_variable("v",shape=[1],initializer=tf.ones_initializer)
#在计算图g1中读取变量“V”的取值
with tf.Session(graph=g1) as sess:tf.global_variables_initializer().run()with tf.variable_scope("",reuse=True):#在计算图g1中,变量“V”的取值应为0,所以下面会输出[0.]print(sess.run(tf.get_variable("v")))
#在计算图g2中读取变量“V”的取值
with tf.Session(graph=g2) as sess:tf.global_variables_initializer().run()with tf.variable_scope("",reuse=True):#在计算图g2中,变量“V”的取值应该为1,所以下面这行会输出[1.].print(sess.run(tf.get_variable("v")))

 

  相关解决方案