TensorFlow是一种采用数据流图(data flow graphs),用于数值计算的开源软件库。其中 Tensor 代表传递的数据为张量(多维数组),Flow 代表使用计算图进行运算。数据流图用「结点」(nodes)和「边」(edges)组成的有向图来描述数学运算。「结点」一般用来表示施加的数学操作,但也可以表示数据输入的起点和输出的终点,或者是读取/写入持久变量(persistent variable)的终点。边表示结点之间的输入/输出关系。这些数据边可以传送维度可动态调整的多维数据数组,即张量(tensor)。
在 Tensorflow 中,所有不同的变量和运算都是储存在计算图。所以在我们构建完模型所需要的图之后,还需要打开一个会(Session)来运行整个计算图。在会话中,我们可以将所有计算分配到可用的 CPU 和 GPU 资源中。像下面的没有打开回话的代码,运行的话不会输出任何东西。也就是说我们定义的每个变量都是一个tensor ,都需要在session中进行计算,这个计算包括
赋值,以及四则运算。不通过session会话运算我们什么都不会得到。
import tensorflow as tf sess = tf.Session() con1 = tf.constant('hello tf!!!',tf.string) #字符串常量 print(con1)只有通过session会话计算之后才可以输出
import tensorflow as tf '''输出都要靠session来实现''' sess = tf.Session() con1 = tf.constant('hello tf!!!',tf.string) #字符串常量 print(sess.run(con1))输出:
tips:要注意的是使用tensorflow的变量时要先进行初始化,不然会报错
import tensorflow as tf '''输出都要靠session来实现''' sess = tf.Session() '''常量''' con1 = tf.constant('hello tf!!!',tf.string) #字符串常量 con2 = tf.constant(2.5,tf.float32)#浮点型常量 con3 = tf.constant(2,tf.int32)#int 型常量 '''变量 ''' var = tf.Variable(10,tf.int32) '''要注意tf中的变量必须要初始化才可以使用''' init = tf.global_variables_initializer() with sess:#这样写就可以省去sess.close()语句 会自动关闭session sess.run(init) '''打印变量''' print(sess.run(con1)) print(sess.run(con2)) print(sess.run(con3)) print(sess.run(var))输出:
b'hello tf!!!' 2.5 2 10
输出:
8 4 12 3.0 dataCopy 8